我有一个可以垂直和水平滚动的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;
}];
该方法产生以下结果:如果滚动视图在其中一个按钮被轻敲时处于中间垂直位置,则内容偏移更新会导致视觉更改,但视图几乎立即返回其原始状态。
我没有关于这个问题的其他线索。你能帮我吗?
答案 0 :(得分:0)
也许是因为你没有设置scrollView的ContentSize。