Objective c 为什么要更新;contentOffset“;一个UIScrollView的效果如何?

Objective c 为什么要更新;contentOffset“;一个UIScrollView的效果如何?,objective-c,cocoa-touch,ipad,uiscrollview,Objective C,Cocoa Touch,Ipad,Uiscrollview,我有一个UIScrollView,它可以垂直和水平滚动。这个视图中有很多按钮,每个按钮都有自己的宽度(但都有相同的高度) 当这些按钮中的一个被点击时,一个类似滑块的界面被激活。如果此界面覆盖所选按钮,则必须滚动整个滚动视图,以便按钮再次可见 当滚动视图内容偏移的Y坐标设置为限制(该限制可以是0或视图的高度)时,我的应用程序的行为与预期的一样。但是,如果内容偏移量位于中间垂直位置,则滚动似乎不会发生 首先,我尝试了以下方法: CGPoint newOffset = CGPointMake(self

我有一个UIScrollView,它可以垂直和水平滚动。这个视图中有很多按钮,每个按钮都有自己的宽度(但都有相同的高度)

当这些按钮中的一个被点击时,一个类似滑块的界面被激活。如果此界面覆盖所选按钮,则必须滚动整个滚动视图,以便按钮再次可见

当滚动视图内容偏移的Y坐标设置为限制(该限制可以是0或视图的高度)时,我的应用程序的行为与预期的一样。但是,如果内容偏移量位于中间垂直位置,则滚动似乎不会发生

首先,我尝试了以下方法:

CGPoint newOffset = CGPointMake(self.scrollView.contentOffset.x + horizontalVar, 
                                self.scrollView.contentOffset.y); 

[self.scrollView setContentOffset: newOffset animated: YES];
正如我提到的,这不起作用

然后,我尝试使用其属性设置器手动设置视图动画:

[UIView animateWithDuration: 0.3 animations: ^{
   CGPoint newOffset = CGPointMake(self.scrollView.contentOffset.x +  horizontalVar, self.scrollView.contentOffset.y);

   self.scrollView.contentOffset = newOffset;
}];
这种方法产生了以下结果:如果滚动视图的一个按钮被点击时处于中间垂直位置,则内容偏移量更新会导致视觉变化,但视图几乎立即返回到其原始状态


关于这个问题我没有其他线索。您能帮我吗?

可能是因为您没有设置scrollView的ContentSize。

我设法解决了这个问题。我有一个与滚动事件关联的委托。这些方法扰乱了我的滚动逻辑。非常感谢你的帮助!