当更改 UIView 的某些属性时,它会layoutSubviews
在superview中触发。我在文档中找不到任何关于此的陈述。
这些属性在 superview 和 self 中触发布局
- 框架
- 界限
这些属性仅在超级视图中触发布局
- 转换
- 层变换
这些属性仅在 self 中触发布局
- 没有任何
这些属性不会触发任何布局
- 中央
- layer.anchorPoint
- 层位
- α
我发现 transform 会触发布局而 position 和 anchorPoint 不会,这很令人困惑。
示例代码:https ://github.com/hfossli/LayoutSubviewsInconsistency
我想知道:
- 为什么我会看到这种行为
- 如果这真的是不一致的,或者我误解了一些核心概念
- 每次我更改转换时如何避免超级视图到 layoutSubviews
我在文档和头文件中找不到任何关于此的内容。当使用 UIDynamics 或类似的时候,这个问题很严重。