【问题标题】:UIScrollView disabled after UINavigationController push and pop在 UINavigationController 推送和弹出后禁用 UIScrollView
【发布时间】:2014-08-22 14:39:26
【问题描述】:

我查看了这个问题的其他答案,但没有一个有帮助。

我在非常简单的场景中有一个 UIScrollView,嵌入如下:

根据this answer,我使用此代码确保滚动视图实际滚动。

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self resizeScrollView];
}

- (void) viewDidLayoutSubviews {
    [self resizeScrollView];
}

- (void)resizeScrollView
{
    _scrollView.scrollEnabled = YES;
    [_scrollView setContentSize:_innerView.frame.size];
}

- (IBAction)cameraButtonPressed:(id)sender {
    UIViewController *vc = [UIViewController new];
    [self.navigationController pushViewController:vc animated:YES];
}

问题是,在我推送并弹出新的 ViewController 后滚动不起作用(顺便说一句,它最初是一个图像选择器)。

【问题讨论】:

  • _innerView 的框架是否等于或小于包含您UIScrollView 的窗口的大小?
  • 高约100。
  • 尝试将viewDidLayoutSubviews 更改为layoutSubviews(调用super)
  • navigationController弹出或推送时是否打印了_innerView.frame.size的日志?
  • 我做到了,它们应该是,总是相同的大小,比滚动视图的框架高,并且与滚动视图的内容大小相同。

标签: ios objective-c uiscrollview uinavigationcontroller


【解决方案1】:

我不知道为什么会这样,但我将所有内容都包裹在另一个视图中,现在它很完美。

【讨论】:

  • 我遇到了完全相同的问题,不幸的是,您建议在 ScrollView 后面添加另一个 UIView 的修复方法似乎对我不起作用..您尝试过的任何其他建议?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多