相关疑难解决方法(0)

无法在scrollViewDidEndDragging中设置setContentOffset

我试图在以下委托方法中修改我的滚动的contentOffset:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
Run Code Online (Sandbox Code Playgroud)

我尝试了以下两种方法:

[UIView animateWithDuration:.2 animations:^ {
   [scrollView setContentOffset:CGPointZero animated:NO];
}];
Run Code Online (Sandbox Code Playgroud)

[UIView animateWithDuration:.2 animations:^ {
   CGRect svBounds = self.bounds;
   svBounds.origin.y = 0;
   self.bounds = svBounds; 
}];
Run Code Online (Sandbox Code Playgroud)

问题是虽然这会立即改变偏移(在动画完成后通过日志证明),但它不会改变可见的滚动位置.我的滚动视图的后续委托方法进一步证明了这一点,它表明边界确实没有改变.意味着y位置不为0.

是否禁止在此特定委托方法中更改内容偏移量?如果是这样,我什么时候可以改变偏移?我正在尝试执行动画,一旦用户完成拖动(在一定量之后),将可见滚动区域返回到顶部.

谢谢!

iphone core-animation objective-c uiscrollview ios

3
推荐指数
1
解决办法
2151
查看次数

标签 统计

core-animation ×1

ios ×1

iphone ×1

objective-c ×1

uiscrollview ×1