Xcode 8 GM破坏了我的UI
问题描述:
Argh。选择一个初始设备视图(6s)后,我的所有边界都完全搞砸了。我使用了下面的代码:Xcode 8 GM破坏了我的UI
func roundButtonLeft(button: UIButton) {
let path = UIBezierPath(roundedRect:button.bounds, byRoundingCorners:[.topLeft, .bottomLeft], cornerRadii: CGSize(width: 10, height: 10))
let maskLayer = CAShapeLayer()
maskLayer.path = path.cgPath
let frameLayer = CAShapeLayer()
frameLayer.path = path.cgPath
frameLayer.lineWidth = 1.0
frameLayer.strokeColor = UIColor.white.cgColor
frameLayer.fillColor = nil
button.layer.addSublayer(frameLayer)
button.layer.mask = maskLayer}
其中在我的UI按钮的一侧添加了边框。这现在不工作,白色边框从屏幕上射下。
如果我放弃我的更改,它可以正常工作,然后打开故事板并强制选择初始设备。
谁能帮助?现在我已经浪费了几个晚上了。
答
这花了很长时间才弄清楚。但它是用button.bounds做的。
我固定它通过添加:
button.layoutIfNeeded()
添加子层之前。
是否正确定位了所有UI元素,如果您关闭添加的边框?我有一个观点,在更新到XCode 8之后,所有元素突然脱屏。约束被错误地实现 - 修复解决了问题。 – BJHStudios
尽我所知,所有的UI元素都有正确的约束。如果我关闭边框,UI元素将保持它们应该在的位置。我应该补充一点,这只是在页面下方拍摄的边框。 UIElement是正确的大小和位置。 – LateNate