我有一个选项卡栏应用程序,第一个选项卡中有一个滚动视图,第二个选项卡中有一些其他内容。滚动工作得非常好,但是如果我向下滚动然后切换到第二个选项卡然后再返回,滚动视图会跳得如此之高以至于整个事情都超出了框架,我可以大麦向上滚动并回到一半最佳。如果我返回到第二个选项卡,然后再次返回到带有滚动视图的选项卡,它就会回到原来的位置就好了,但是每次我第一次运行应用程序时,它都会飞离屏幕很远。
所以我添加了一个我认为可以解决我的问题的方法,它看起来像这样:@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);
而且我对这段代码非常有信心,但有些地方是错误的......任何帮助将不胜感激。谢谢 :)