写在这,帮助后来人看到绕过这个坑,给自己做个备忘录
在项目中有一个需求将背景视图样式做成上面两个角是直角下面两个角是圆角,视图的高度需要根据数据的变化而变化。
依照以前的习惯将这个视图抽取出来单独做了一个类,来管理这个视图内的所有的视图,但是在使用完masonry布局完之后调用layoutIfNeeded,然后获取视图的frame,然后使用贝塞尔曲线设置圆角,但是奇怪的是视图的frame 获取一直都是0。
由于以前也是按照这个流程来做的,现在没有效果了not work !!
后来经过多次的验证、推翻,验证,后来发现
如果这个视图在Controller中这样操作,没有问题frame 可以获取,但是在新的一个视图类中,这个操作就没有作用了
其中的原因http://www.cocoachina.com/ios/20170928/20671.html有讲解
我的解决方法是
第一个解决方法 只是为了实现效果
将两个视图堆叠实现了这个效果
第二个解决方法就是 将这个视图设置为public 然后在Controller 中设置
若有谬误,请指正