Mat*_*ger 30 iphone uiscrollview ios autolayout ios6
我有autolayout(也许)和我的scrollview的问题!
我的问题

然后我推到另一个视图
然后我回去看看它的滚动视图,我无法滚动到最高点.(我在滚动视图的弹跳中看到它)

有谁能够帮我?
use*_*136 40
包含视图控制器中的以下代码片段似乎也解决了问题,而不依赖于显式大小:
- (void)viewDidDisappear:(BOOL)animated {
  [super viewDidDisappear:animated];
  self.mainScrollView.contentOffset = CGPointZero;
}
它确实将内容偏移重置为原点,但其他答案似乎也是如此.
小智 11
如果你还在寻找一个答案,我今天发现了它,这是在两天撞墙之后发现的.我只是粘贴你的代码,但最重要的是你加载你的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中,这对于解决此问题至关重要.祝你的项目好运;)
我正在使用亚当的解决方案,但当我用动画解雇时开始出现问题:是的.在我的代码中,内容偏移量在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;
    }
}
| 归档时间: | 
 | 
| 查看次数: | 18358 次 | 
| 最近记录: |