2017-06-16 88 views
0

我有一个UIScrollView的,我有一个UIView这是scroll viewsubview,该UIView有很多其他的子视图和我加入子视图后,动态获取它的高度,这是我的一段代码添加视图滚动视图的UIScrollView溅起顶部或底部

CGRect frameOfView = CGRectMake(0, 0,Get_Bounds.width, globalYPosition); 
self.parentProductDetailView = [[UIView alloc]initWithFrame:frameOfView]; 

我第一次初始化认为这种方式,然后将所有子视图后,我这样做,

frameOfView.size.height = globalYPosition; 

[self.parentProductDetailView layoutSubviews]; 
self.parentProductDetailView.frame = frameOfView; 
[self.productDetailScrollView addSubview:self.parentProductDetailView]; 
self.productDetailScrollView.contentSize = CGSizeMake(0, self.parentProductDetailView.frame.size.height *1); 

但我的滚动视图不能正确滚动它要么坚持顶部或底部。

这里globalYPosition是添加了所有subviews的高度与parentProductDetailView

+0

只是在黑暗中拍摄:您的滚动视图上是否启用了分页功能?它应该被禁用。 –

+0

请添加此作为答案我会upvote它节省了我的一天。 :) –

回答

1

总和你所用的方法似乎是正确的。无论子视图如何,通过简单地使用更大的内容大小和帧大小,滚动视图就能正确滚动。

如果启用了分页功能,那么滚动视图可能会粘住一些点,这就是您的情况。如果内容视图大于框架大小的1.5倍,则滚动视图将捕捉到顶部/底部或左/右。如果它比较小,那么它只会对准起始位置。

这可能是非常有用的情况下,如有一个侧菜单,需要一部分屏幕,但在你的情况下,你应该简单地禁用分页和滚动应该工作正常。