【发布时间】:2016-04-26 19:15:31
【问题描述】:
为什么我的UIView 在不同的 iPhone 屏幕尺寸上有不同的位置?我想这是因为autoresizingMask,但是在应用autoresizingMask 之后我怎么能得到一个视图框架来创建一些通用逻辑呢?或者处理这个问题的最佳做法是什么?
这里是代码:
private func setup() {
positionView = CircularProjectPositionControl(frame: self.bounds)
positionView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
positionView.outerCircleWidth = outerCircleWidth
assetsView = CircularProjectAssetsControl(frame: self.bounds)
assetsView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
assetsView.backgroundColor = UIColor.clearColor()
assetsView.imageWidth = outerCircleWidth
let size = CGSize(width:40, height:40)
let width = floor(CGRectGetMidX(self.bounds) - size.width/2.0)
let height = floor(CGRectGetMidY(self.bounds) - size.width/2.0)
collaboratorView = AvatarView(frame: CGRect(x: width, y: height, width: size.width, height: size.height))
collaboratorView.autoresizingMask = [.FlexibleBottomMargin, .FlexibleLeftMargin, .FlexibleRightMargin]
self.addSubview(assetsView)
self.addSubview(positionView)
self.addSubview(collaboratorView)
}
【问题讨论】:
-
为什么要以编程方式执行此操作?在 Storyboard 中使用自动布局约束会更容易
-
@matt.writes.code 我不能在这里使用故事板
标签: swift autolayout autoresizingmask