【发布时间】:2012-10-19 15:58:01
【问题描述】:
我有一个看起来像这样的视图控制器:
根视图是滚动视图。当视图第一次加载时,它滚动得很好。
但是,有时我需要使用如下代码删除底部的一个按钮:
if (item.url==nil||[item.url isEqualToString:@""]) {
[overdriveButton removeFromSuperview];
}
然而,在这样做之后,滚动视图将不再滚动。 (屏幕中间的那些视图会扩展,所以总是有很多内容延伸到屏幕底部之外)。
请注意,我需要在这里使用自动布局。我怀疑这是问题的一部分。按钮的移除(以及相关的约束)是否会以某种方式混淆滚动视图?
【问题讨论】:
-
item.utl真的是 NSString 吗?我遇到过 UIKit 静默捕获运行时异常但使 UI 冻结而不会导致应用程序崩溃的情况。 -
向我们展示您对滚动视图 contentSize 的计算。您可能正在使用按钮进行计算,这会导致它停止滚动
-
我没有在任何地方设置内容大小。我想我认为 Auto Layout 正在为我处理这个问题?正如我所说,在我删除按钮之前它可以正常工作。
-
可能 removeFromSuperView 会在启用自动布局时在 UIScrollView 上调用内部“sizeToFit”。这将导致滚动视图扩展到其内容的大小(大于屏幕),然后就没有什么可以滚动了。移除按钮后设置正确的“contentSize”。
标签: iphone ios uiscrollview uibutton autolayout