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做任何事情,它对于每个设备尺寸都保持相同的高度
【问题讨论】:
如果您使用自动布局,您应该在视图控制器的viewwilllayoutsubviews
或viewDidAppear
方法中设置框架
您需要通过更改您给它的高度约束的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 设置动画,就像页面滑入一样?