gpt4 book ai didi

ios - 为什么使用 "contentOffset"后 UIScrollView 的 "scrollRectToVisible"没有改变?

转载 作者:行者123 更新时间:2023-11-29 01:53:03 26 4
gpt4 key购买 nike

当我使用方法“scrollRectToVisible”时,尽管框架在视觉上在 ScrollView 中移动,但属性“contentOffset”的值保持不变。我认为“contentOffset”反射(reflect)了它在 ScrollView 中移动/滚动的程度。这是我的代码:

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);

“subview”表示UIScrollView里面的UIImageView,但是对于这个问题来说无所谓。

最佳答案

您在实际滚动发生之前检查了偏移量。 contentOffset 属性反射(reflect)当前状态,而不是将来的状态。 scrollRectToVisible 仅启动动画,稍后将结束。我不确定将动画设置为 NO 是否会立即滚动(它可以直接设置 contentOffset 或以 0 时间开始动画,这可能会或可能不会立即处理)。查看 contentOffset 确实发生变化的最简单方法是实现 ScrollView 委托(delegate)的 -(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);
});

关于ios - 为什么使用 "contentOffset"后 UIScrollView 的 "scrollRectToVisible"没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31205306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com