虽然我使用方法" scrollRectToVisible",属性的值" contentOffset"虽然视觉框架在Scroll View中移动,但仍保持不变。我认为" contentOffset"反映在滚动视图中移动/滚动的程度。这是我的代码:
NSLog(@"Offset Before: %f", scrollView.contentOffset.x);
CGRect rectToScroll = CGRectMake(
100,
subview.frame.origin.y,
subview.frame.size.width,
subview.frame.size.height);
[scrollView scrollRectToVisible:rectToScroll animated:YES];
NSLog(@"Offset After: %f", scrollView.contentOffset.x);
"子视图"在UIScrollView中代表UIImageView,但对于这个问题并不重要。
答案 0 :(得分:1)
您在实际滚动发生之前检查了偏移量。 contentOffset属性反映当前状态,而不是将来的状态。 scrollRectToVisible仅启动动画,该动画将在稍后结束。我不确定将动画设置为NO是否会立即滚动(它可以直接设置contentOffset或以0时间开始动画,可能会立即处理也可能不会立即处理)。查看contentOffset实际更改的最简单方法是实现滚动视图委托的-(void)scrollViewDidScroll:(UIScrollView*)scrollView;
。或者做这样的事情以便快速检查(注意这1秒是仲裁)。
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0*NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"Offset After: %f", scrollView.contentOffset.x);
});