打开自动布局时的 UIScrollView(故事板)

Posted

技术标签:

【中文标题】打开自动布局时的 UIScrollView(故事板)【英文标题】:UIScrollView when Autolayout is turned on (StoryBoard) 【发布时间】:2013-03-06 02:31:32 【问题描述】:

我正在与 UIScrollview 搏斗,结果把我打晕了。 我试图参考 *** 上的以下两篇文章

scrollview xcode4.5 autolayout, Xcode 4.5 UIScrollView, Embed ImageView in ScrollView with Auto Layout on ios 6,

我尝试了 viewDidLayoutSubviews,如中所述 UIScrollView setContentSize breaks view with Auto Layout 这导致我的应用程序崩溃。

我尝试了 ViewDidLoad、viewDidAppear 和 viewWillAppear,但没有任何效果。 我尝试了谷歌并找到了更多相关的帖子 https://coderwall.com/p/zfe8da, http://www.devx.com/wireless/Article/45113

我试图重新思考并没有发现我没有做的任何花哨的事情。这似乎很简单,直接的方法。

我没有线索或任何猜测请帮助我。

我正在使用以下代码,只是提到我在 ScrollView 中放置了 3 张图像。我将它们堆叠在一起,因此高度大于 iPhone 屏幕高度。我期待它我将它们设置为简单滚动,但我猜我错了。 在实施文件中

_howtoScrollView.frame = CGRectMake(0, 0, 320, 460);
_howtoScrollView.scrollEnabled = YES;
[self.howtoScrollView setContentSize:CGSizeMake(self.howtoScrollView.frame.size.width, 700)];
[self.view addSubview:_howtoScrollView];

在接口文件.h中

@property (weak, nonatomic) IBOutlet UIScrollView *howtoScrollView;

在拥有 StoryBoard Autolayout 的同时使用 ScrollView 获得成功的任何人。

【问题讨论】:

【参考方案1】:

尝试删除_howtoScrollView.frame = CGRectMake(0, 0, 320, 460);,看看是否有效。

如果你真的需要改变视图的框架,在自动布局中,你不应该直接在你的代码中设置框架,你应该修改Constraint

【讨论】:

不,它可以通过评论 _howtoScrollView.frame = CGRectMake(0, 0, 320, 460);线...【参考方案2】:

尝试不使用“addSubview”功能。我认为使用 AutoLayout 会覆盖您的其他设置...

【讨论】:

【参考方案3】:

使用界面生成器,

展开滚动视图的约束部分。然后选择“水平空间约束”。在该部分下,您可能对“常量”值有一个负值。将其更改为0。它会成功的。

【讨论】:

【参考方案4】:

我也有这个问题。苹果在发行说明中隐藏了解释。 http://developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0。查看 UIKit 部分。

【讨论】:

以上是关于打开自动布局时的 UIScrollView(故事板)的主要内容,如果未能解决你的问题,请参考以下文章

带有故事板和自动布局的大小值

iOS - 故事板 - 使用自动布局修改超出框架的 UIView

UIScrollView SetContentSize 与自动布局

UIScrollView 不滚动自动布局问题

尝试理解 iOS 8 中的 UIScrollView 自动布局

约束/自动布局栏隐藏,Xcode 6