Swift - 根据大小屏幕设置 UIView 的大小

Posted

技术标签:

【中文标题】Swift - 根据大小屏幕设置 UIView 的大小【英文标题】:Swift - setting UIView's size based on size screen 【发布时间】:2016-03-23 16:42:00 【问题描述】:

我在这里经历了很多线程并尝试了两个最推荐的解决方案。 ViewDidLoad() 方法内部:

self.darkBackgroundWithButtons.frame = CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height * 0.254)

self.darkBackgroundWithButtons.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height * 0.254)

另外,在我的故事板中,我将视图的高度约束设置为低优先级 (如果我没有在情节提要中设置高度,xcode 会抱怨布局不明确)

但是上面的这些代码行都没有对darkBackgroundWithButtons做任何事情,它对于每个设备尺寸都保持相同的高度

【问题讨论】:

如果您使用自动布局,您应该在视图控制器的viewwilllayoutsubviewsviewDidAppear 方法中设置框架 您需要通过更改您给它的高度约束的constant 来设置高度。如果您使用自动布局,则无法直接更改框架 @dan 你能提供更多细节我应该做什么吗? 【参考方案1】:

这可能是问题所在:

在界面生成器中,您为按钮设置了约束,因此当您尝试更新框架时它不会改变其高度。改为这样做:

首先将您的约束从界面构建器连接到您的视图控制器,就像您通常使用按钮所做的那样。

然后使用此代码更改约束:

 var index = self.darkBackgroundWihButtons.constraints.indexOf("your constrain name")!
 self.darkBackgroundWithButtons.constraints[index].constant = 0.2 // or whatever number you want

【讨论】:

以上是关于Swift - 根据大小屏幕设置 UIView 的大小的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 如何根据视频播放器框架的大小动态调整 UIView 的大小

在 Swift 中,如何使用自动布局为 UIView 设置动画,就像页面滑入一样?

尝试在 Swift 中创建圆形 UIView 时出错

在情节提要 IOS 7 中根据屏幕宽度和高度修复两个 uiview 大小

是否可以在截取uiview的屏幕截图时设置图像大小?

Swift:动态 UIView 在调整大小后将 UIView 推到其下方