【问题标题】:iOS: UIScrollView not scrolling after UIButton is removediOS:删除 UIButton 后 UIScrollView 不滚动
【发布时间】: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


【解决方案1】:

要么设置 UIScrollView 的 "contentSize" 属性,要么调用 "sizeToFit" 方法。

【讨论】:

    猜你喜欢
    • 2013-03-26
    • 2011-07-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多