美文网首页
良月二十 iOS / 关于addsubview触发layoutS

良月二十 iOS / 关于addsubview触发layoutS

作者: 不不不不同学 | 来源:发表于2019-10-20 17:30 被阅读0次

一、描述

(1)在一次任务开发中,对某个视图的布局处理,是放在layoutSubviews中进行的。
(2)而此视图是可能会多次展开、隐藏的。
(3)即是每次都会重复remove、addsubview。
(4)正常来说,每次展开addsubview,都调用layoutSubviews的话,则使用肯定是没问题的。

二、小结

(1)而问题发现于,在之后的展开中,视图并不会再调用layoutSubviews方法。
(2)而只有第一次addsubview的时候,才会调用layoutSubviews方法。
(3)本以为是iOS13才会如此,但调试发现iOS12也一样会。是一直如此还是从某个版本才开始暂未调研。
(4)【解决】因此只有每次addsuview都手动加一句layoutSubviews才能正常布局。
(5)调用了layoutIfNeeded、setNeedsLayout都发现无效。

三、参考文章

1、layoutSubviews,layoutIfNeeded,setNeedsLayout触发时机和规则 - 简书
2、关于UIView的layoutSubviews - 简书
3、iOS - layoutSubviews总结(作用及调用机制) - 简书

相关文章

网友评论

      本文标题:良月二十 iOS / 关于addsubview触发layoutS

      本文链接:https://www.haomeiwen.com/subject/itkamctx.html