1

我使用 iOS 6。我创建了一个自定义子类,UIView它有我自己的布局逻辑,在重写layoutSubviews方法中描述。我希望同时支持纵向和横向模式,因此调用layoutSubviews对我来说至关重要。layoutSubviews我在不使用任何约束的情况下以编程方式重新排列和调整子视图的大小。

如果我使用简单的控件或作为子视图添加到我的自定义子类中的 UIView 进行操作,一切正常。但是,如果我添加至少一个基于 NIB 的子视图,该子视图具有带有一些约束的自动布局,layoutSubviews则永远不会在我的子类中调用旋转,因此我无法更新布局。

这可能是非常简单的事情,但是我在这里找不到解决方案,而且由于我是 iOS 新手,所以我无法自己解决。请帮忙。

4

2 回答 2

4

这个问题似乎比我预期的要深得多。我花了两天时间调试和阅读混合自动布局和自动调整布局方法的所有这些东西,最终我发现很难将一些视图与自动布局结合起来,并将一些中间视图与编程布局结合起来。

我通过在 super 的方法中手动调用layoutSubviews和设置FrameUIView 的自定义子类来临时修复了提到的问题。layoutSubviews

于 2013-08-04T22:07:40.470 回答
2

是的,我认为您有同样的问题,即layoutSubviews完全没有调用。请检查以下链接并查看:-

什么时候调用 layoutSubviews?

UIView layoutSubviews 没有被调用

使用 UITableViewCell 子类执行“-layoutSubviews”后仍需要自动布局

这些问题与您的问题相似。希望他们有所帮助。

于 2013-08-03T06:13:31.380 回答