我对自动收费表(也许)和我的滚动视图有问题!
我的问题

2.然后我推到另一个视图
3.然后我返回,滚动视图看起来像这样,我无法滚动到最高点。(我在滚动视图的弹跳中看到了它)

有人能帮我吗?
发布于 2012-11-10 21:36:25
以下包含视图控制器中的代码片段似乎也解决了这个问题,而不依赖于显式大小:
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
self.mainScrollView.contentOffset = CGPointZero;
}它确实将内容偏移量重置为原点,但似乎其他答案也是如此。
发布于 2012-11-02 14:10:48
如果你还在寻找答案的话,我今天在敲墙两天后找到了答案。我会粘贴你的代码,但最重要的是当你加载你的scrollView。
-(void)viewWillAppear:(BOOL)animated{
[scrollView setFrame:CGRectMake(0, 0, 320, 800)];
}
-(void)viewDidAppear:(BOOL)animated
{
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(320, 800)];
}所有这些都是在-(void)viewDidLoad之前加载的
注意,在这两种情况下,高度都是800,这对于解决这个问题至关重要。祝你的项目顺利;)
发布于 2013-01-29 18:45:48
我使用的是亚当的解决方案,但当我用动画解说的时候,我开始有问题了:是的。在我的代码中,内容偏移量在viewWillAppear之后会被设置一段时间(因为viewWillAppear看起来太快了)。
- (void)viewDidDisappear:(BOOL)animated
{
self.scrollOffsetToPersist = self.scrollView.contentOffset;
self.scrollView.contentOffset = CGPointZero;
[super viewDidDisappear:animated];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{
self.scrollView.contentOffset = self.scrollOffsetToPersist;
}];
}编辑:另一种更好的方法是在viewDidLayoutSubviews中重新设置它:)
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
if(!CGPointEqualToPoint(CGPointZero, self.scrollOffsetToPersist))
{
self.scrollView.contentOffset = self.scrollOffsetToPersist;
self.scrollOffsetToPersist = CGPointZero;
}
}https://stackoverflow.com/questions/12580434
复制相似问题