写在这,帮助后来人看到绕过这个坑,给自己做个备忘录
在项目中有一个需求将背景视图样式做成上面两个角是直角下面两个角是圆角,视图的高度需要根据数据的变化而变化。
依照以前的习惯将这个视图抽取出来单独做了一个类,来管理这个视图内的所有的视图,但是在使用完masonry布局完之后调用layoutIfNeeded,然后获取视图的frame,然后使用贝塞尔曲线设置圆角,但是奇怪的是视图的frame 获取一直都是0。
由于以前也是按照这个流程来做的,现在没有效果了not work !!
后来经过多次的验证、推翻,验证,后来发现
如果这个视图在Controller中这样操作,没有问题frame 可以获取,但是在新的一个视图类中,这个操作就没有作用了
其中的原因http://www.cocoachina.com/ios/20170928/20671.html有讲解
我的解决方法是
第一个解决方法 只是为了实现效果
将两个视图堆叠实现了这个效果
第二个解决方法就是 将这个视图设置为public 然后在Controller 中设置
若有谬误,请指正
本文记录了一次在项目中遇到的Masonry布局后无法正确获取视图frame的问题。当视图高度根据数据动态变化,并尝试设置圆角时,frame始终为0。通过查阅资料和实验,发现问题可能在于视图类内部操作frame的方式。解决方案包括将视图堆叠以达到预期效果,或者将视图设为public并在Controller中进行设置。文章提供了参考资料链接供读者深入理解。
1243

被折叠的 条评论
为什么被折叠?



