gpt4 book ai didi

ios - 当我使用 contentInset 时,我不完全理解 scrollRectToVisible

转载 作者:可可西里 更新时间:2023-11-01 03:30:15 27 4
gpt4 key购买 nike

我向 UItextView 添加了非常大的文本。我的初始偏移量是 -55。然后我滚动到 UITextView 的底部。我的偏移量是 406。

然后我调用了 scrollToZero。我的偏移量是-55。我又调用了scrollToZero,我的offset是0,为什么scrollToZero这么变幻莫测呢?我不明白为什么当我再次单击时偏移量会发生变化。

-(void) viewDidLoad
{
[super viewDidLoad];
textView.text = @"Very big text";
textView.contentInset = UIEdgeInsetsMake(55.0, 0, 0, 0);
[textView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];
}

-(IBAction) scrollToZero:(id)sender
{
[textView scrollRectToVisible:CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height) animated:NO];
}
-(IBAction) onLog:(id)sender
{
NSLog(@"___content offset %f", textView.contentOffset.y);
}

最佳答案

我一直在与这个问题作斗争。我确信这是 UIScrollView 类中的错误,我看不出有其他解释。

首先将您的 insets 设置为零,调用 scrollRectToVisible:animated:,然后恢复您的 insets。仅当滚动到 rect 位于当前 rect 的“左侧”时才重要。 “权利”按预期工作。

CGRect rect = self.scrollView.bounds;
CGRect scrollToRect = CGRectOffset(rect, scrollDelta, 0);

if (CGRectIsLeftOfRect(scrollToRect, rect)) {
UIEdgeInsets insets = self.carouselView.contentInset;
self.scrollView.contentInset = UIEdgeInsetsZero;
[self.scrollView scrollRectToVisible:scrollToRect animated:animated];
self.scrollView.contentInset = insets;
} else {
[self.scrollView scrollRectToVisible:scrollToRect animated:animated];
}

关于ios - 当我使用 contentInset 时,我不完全理解 scrollRectToVisible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9820669/

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