相关疑难解决方法(0)

什么时候调用layoutSubviews?

我有一个自定义视图,layoutSubview在动画期间没有收到消息.

我有一个填充屏幕的视图.如果我更改导航栏的高度,它在屏幕底部有一个自定义子视图,可以在Interface Builder中正确调整大小.layoutSubviews在创建视图时调用,但从不再调用.我的子视图已正确布局.如果我关闭通话中状态栏,layoutSubviews则根本不会调用子视图,即使主视图确实为其调整大小设置了动画.

在什么情况下layoutSubviews实际上被称为?

我已经autoresizesSubviews设置NO为我的自定义视图.在Interface Builder中,我有顶部和底部支柱以及垂直箭头设置.

cocoa-touch bounds ios layoutsubviews autolayout

259
推荐指数
7
解决办法
16万
查看次数

UIView/CALayer:转换在superview中触发layoutSubviews

当更改UIView的某些属性时,它会layoutSubviewssuperview中触发.我在文档中找不到任何关于此的陈述.

这些属性触发superview和self中的布局

  • 界限

这些属性仅在superview中触发布局

  • 转变
  • layer.transform

这些属性仅触发自我布局

  • 没有

这些属性不会触发任何布局

  • 中央
  • layer.anchorPoint
  • layer.position
  • α

我发现变换触发布局并且位置和anchorPoint没有变得非常混乱.

示例代码:https://github.com/hfossli/LayoutSubviewsInconsistency


我想知道:

  • 为什么我看到这种行为
  • 如果这确实是不一致的,或者我误解了一些核心概念
  • 每次我改变变换时如何避免superview to layoutSubviews

我在文档和头文件中找不到任何相关内容.使用UIDynamics或类似产品时问题很严重.

uiview ios layoutsubviews viewdidlayoutsubviews

26
推荐指数
1
解决办法
3387
查看次数