【问题标题】:Calling presentViewController:animated:completion: changed UIScrollView's bounds and frame调用 presentViewController:animated:completion: 改变 UIScrollView 的边界和框架
【发布时间】:2013-11-03 13:40:54
【问题描述】:

我正在编写一个 iOS 应用,它有一个非常简单的布局,一个顶部容器和一个底部容器视图引用两个不同的视图控制器,在视图的中间,这是一个嵌入 UIImageView 的 UIScrollView。

使用自动布局,这是我为这些部分设置的约束:

顶部容器视图:

滚动视图:

底部容器视图:

在我打电话之前一切正常

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:self.imageView.image, nil] applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];

在此调用之后,UIScrollView 的 framebounds 属性设置为全 0,我对这里出了什么问题感到困惑。

有人可以帮我指出吗?非常感谢!

【问题讨论】:

  • 只是为了好奇,如果你呈现一个普通的 viewController 也会发生这种情况?
  • @elio.d 我不知道如何测试它,如果我使用[self presentViewController:[[UIViewController alloc] init] animated:YES completion:nil];,旧视图就会消失,我不知道是否会发生这种情况.. 你能告诉我如何这样做?

标签: ios iphone uiscrollview


【解决方案1】:

我终于解决了问题,原来我不小心添加了以下代码:

self.scrollView.translatesAutoresizingMaskIntoConstraints = NO;
self.imageView.translatesAutoresizingMaskIntoConstraints  = NO;

[self.scrollView removeConstraints:self.imageView.constraints];
[self.view removeConstraints:self.scrollView.constraints];

因此,即使我在 IB 中取消选中“自动布局”选项,它仍在幕后工作。

对不起,这个问题很糟糕,我想这种问题不通读大量代码是无法解决的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    相关资源
    最近更新 更多