1
我有一个可垂直和水平滚动的UIScrollView。这个视图中充满了许多按钮,每个按钮都有自己的宽度(但都具有相同的高度)。为什么更新UIScrollView的“contentOffset”不起作用?
当其中一个按钮被点击时,类似滑块的界面就会生效。如果这个界面覆盖了选定的按钮,则必须滚动整个滚动视图,以便该按钮再次变为可见。
当滚动视图的内容偏移的Y坐标设置为限制(此限制可以是0或视图的高度)时,我的应用程序的行为与预期相同。但是,如果内容偏移量位于中间垂直位置,则滚动似乎不会发生。
起初,我尝试以下方法:
CGPoint newOffset = CGPointMake(self.scrollView.contentOffset.x + horizontalVar,
self.scrollView.contentOffset.y);
[self.scrollView setContentOffset: newOffset animated: YES];
,没有工作,正如我所说。
然后,我试图手动动画视图,利用其属性setter:
[UIView animateWithDuration: 0.3 animations: ^{
CGPoint newOffset = CGPointMake(self.scrollView.contentOffset.x + horizontalVar, self.scrollView.contentOffset.y);
self.scrollView.contentOffset = newOffset;
}];
这种做法产生了以下结果:如果滚动视图处于中间垂直位置时,其按钮中的一个被敲击,内容偏移更新会导致视觉更改,但视图几乎立即返回到其原始状态。
我对这个问题没有其他线索。你可以帮我吗?
我设法解决了这个问题。我有一个与滚动事件相关的委托。这些方法搅乱了我的滚动逻辑。非常感谢您的帮助! –