我有一个UIScrollView,我有一个UIView,它是subviewscroll viewUIView还有很多其他子视图,添加子视图后,我会动态获得其高度,这是我的代码,将视图添加到滚动视图

 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);


但是我的scrollview不能正确滚动,它会粘在顶部或底部。

这里globalYPosition是添加到subviews的所有parentProductDetailView的高度之和

最佳答案

您使用的过程似乎正确。无论滚动视图的子视图是什么,只要使用比其框架大小更大的内容大小即可正确滚动。

如果启用了分页,则滚动视图可能会停留并捕捉到某些点,这就是您的情况。如果内容视图大于帧大小的1.5倍,则滚动视图将捕捉到顶部/底部或左侧/右侧。如果较小,则它将仅捕捉到起始位置。

这对于诸如侧面菜单占据屏幕一部分的情况可能非常有用,但是在您的情况下,您应该仅禁用分页并且滚动应该可以正常工作。

10-07 19:43