UIScrollView不滚动ios6
在我的UIViewController
我有UIScrollView
和UIView
。这是两种不同的观点,意思是UIView
不在UIScrollView
里面。我对scrollview有不同的看法,我正在编程设置和增加contentSize
。而这UIView
是隐藏的,我有时显示。问题是,当我隐藏这个UIView
,UIScrollView
停止滚动。UIScrollView不滚动ios6
为什么会发生这种情况?
我已将所有前沿设置为两者的超级视角。有关系吗? 请指导我。
大家好,我分享我的ViewController Scene
我使用的自动布局(iOS6的)的图像。 Scroll View ContentSize
是(768,1400),我在ViewDidAppear
中设置。 View
下面Scroll View
被隐藏,Scroll View
正在滚动没有任何问题。
现在,如果我显示和隐藏View
,Scroll View
锁,它现在不滚动。 这就是我面临的问题。 我不是在设置内容大小,而是在代码中做任何事情。 如果您需要任何其他信息,请告诉我。
没有任何代码,我会大胆地猜测...
如果您contentSize
不超过您UIScrollView
的大小这将是一个典型的案例。如果您想隐藏视图,然后更改滚动视图的大小,并且您的滚动视图超出或等于您的contentSize
,那么您将无法滚动任何内容。
另一种可能是您禁用了用户交互。
iOS 6中的contentSize
“auto-sizes”本身具有自动布局。这意味着您不能设置contentSize
。有些黑客建议在拨打viewDidAppear
时设置它,但我会避免这种情况。如果您阅读iOS 6 release notes(在页面上搜索UIScrollView
),它会为您提供一些解决方案。其中之一涉及translatesAutoresizingMaskIntoConstraints
属性。
我同意你的直觉,但在实践中,我发现如果我简单地将subview设置为隐藏或者为零,那么它不会重新计算'contentSize'。它只能正常工作,如果我重置被隐藏的物品的高度限制。奇怪的是,即使我删除了子视图,它也不会重新计算'contentSize',除非在scrollview上有一些约束可能导致重新计算'contentSize'的_else_。如果删除的子视图是最后一个,则不会重新计算'contentSize'(尽管您可以手动重置)。 – Rob 2013-02-22 18:34:39
永远不要说它工作正常。只是说明为什么它在iOS 6中不起作用的“原因”。发行说明提到了一种解决此问题的方法。 – Luke 2013-02-22 19:35:58
嗨,我知道它是将contentSize设置为UIScrollView的框架大小。如何和何时设置? – Bhushan 2013-03-05 05:54:05
删除所有与调整scrollview内容大小相关的代码。 Autolayout在你现在滚动的时候使用这个。完成后请添加以下代码
// Add 200 points to the bottom of the scroll view
[self.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 200, 0)];
self.scrollView.translatesAutoresizingMaskIntoConstraints= NO;
请添加一些代码。 – Kuba 2013-02-22 15:11:41
您隐藏的视图是滚动视图的contentView?如果是这样的话......你需要在 – 2013-02-22 15:13:41
@Rob之间看到另一个视图,我想我需要从UIKit的问题中一起回避... – 2013-02-22 19:03:33