iOS 5中的UIScrollView布局子视图行为更改?

iOS 5中的UIScrollView布局子视图行为更改?,ios,uiscrollview,layoutsubviews,Ios,Uiscrollview,Layoutsubviews,我正在开发一个组件,它是UIView的一个子类,包含一个UIScrollView。 滚动时,我注意到不同的行为取决于我使用哪个SDK构建。在iOS 4上,layoutSubviews消息在滚动视图的superview(这是我的组件)上发送,但在iOS 5上,该消息似乎不再发送 在查看了iOS5发行说明和变更日志之后,我没有发现任何关于此类变更的提及。我错过了吗什么?在iOS5中,不会在scrollView的superview上调用LayoutSubView。但那是在iOS4中 如果要在iOS5中

我正在开发一个组件,它是UIView的一个子类,包含一个UIScrollView。 滚动时,我注意到不同的行为取决于我使用哪个SDK构建。在iOS 4上,layoutSubviews消息在滚动视图的superview(这是我的组件)上发送,但在iOS 5上,该消息似乎不再发送


在查看了iOS5发行说明和变更日志之后,我没有发现任何关于此类变更的提及。我错过了吗什么?

在iOS5中,不会在scrollView的superview上调用LayoutSubView。但那是在iOS4中

如果要在iOS5中执行此操作,请在UIScrollView的子类中执行此操作:

- (void)layoutSubviews {
    [super layoutSubviews];

    // causes layoutSubviews to get called on superview
    [self.superview setNeedsLayout]; 

这可能是为了提高效率。仅仅因为UIScrollView正在滚动,并不意味着它的superview需要自行布局。

我在调整tableview中作为子视图的按钮的大小时遇到了很大的问题。笔尖加载了较小的按钮,加载后我调整了它的大小。但是表视图内容没有。(在iOS 4中。*这是完美的,但在iOS 5中)。所以我发现我必须在ViewDidLoad中调整大小。我希望这对某些人有所帮助1=)

这正是我所想的,你是对的,这很有意义。谢谢呃,这不是导致了“无休止的布局循环”吗?因此,一旦调用了
layoutSubviews
,每次运行循环迭代都会调用它。我的测试没有循环,我可以再次验证,我将挖掘我在编写此答案时编写的示例代码。