gpt4 book ai didi

ios - 切换 View 时 UIScrollview 跳出屏幕

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:59 26 4
gpt4 key购买 nike

我有一个选项卡栏应用程序,第一个选项卡中有一个 ScrollView ,第二个选项卡中有一些其他内容。滚动效果非常好,但是如果我向下滚动然后切换到第二个选项卡然后再次返回,则 ScrollView 会跳得如此之远,以至于整个内容都超出了框架,我可以大麦向上滚动并到达一半回到最佳。如果我返回到第二个选项卡,然后再次返回到带有 ScrollView 的选项卡,它就会回到原来的位置,但每次我第一次运行应用程序时,它都会飞离屏幕很远。

所以我添加了一个我认为可以解决我的问题的方法,它看起来像这样:@property (nonatomic) float lastScrollHeight;

@synthesize lastScrollHeight = _lastScrollHeight;

-(float)lastScrollHeight{
if(!_lastScrollHeight) _lastScrollHeight = 0;
return _lastScrollHeight;
}



-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
[self.scroll setContentOffset:CGPointMake(0.0f, self.lastScrollHeight) animated:NO];
}

-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.lastScrollHeight = self.scroll.bounds.origin.y;
[self resetApplesBrokenScrollview];
}

-(void)resetApplesBrokenScrollview{
[self.scroll setContentOffset:CGPointZero];
CGRect sFrame = self.scroll.bounds;
sFrame.origin = CGPointZero;
self.content.bounds = sFrame;
CGRect cFrame = self.scroll.frame;
cFrame.origin = CGPointZero;
self.content.frame = cFrame;
}

在 viewDidLoad 方法中:

[super viewDidLoad];
[scroll setScrollEnabled:YES];
[scroll setContentSize:CGSizeMake(320, 1900)];
scroll.contentInset=UIEdgeInsetsMake(0.0,0.0,1919.0,0.0);

我对这段代码非常有信心,但有些地方似乎是错误的...任何帮助将不胜感激。谢谢:)

最佳答案

即使您的列表很长,这也是您设置内容大小的原因。这个巨大的底部插图毫无意义,因为它超出了您的 screenSize.height。

如果你有 f.i.一个 View 与你的 scrollView 重叠,那么你需要提供一个 contentInset 和你的重叠 View 的高度(只是一个例子)。

您的 scrollView 框架应该是您希望内容滚动的大小。contentSize 是内容需要/需要的实际大小。

关于ios - 切换 View 时 UIScrollview 跳出屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155488/

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