UIScreen.main.bounds.width 在 Swift 3 中返回 nil
UIScreen.main.bounds.width returning nil in Swift 3
在我的项目中,我搞砸了两个版本的应用程序。我可能复制了项目文件并产生了问题。这条线
myLogo.frame.size.width = UIScreen.main.bounds.width
表明,UIScreen.main.bounds.width
returns 为零。这怎么可能呢?
fatal error: unexpectedly found nil while unwrapping an Optional value
可能是什么原因,我该如何修复?
我正在研究最新的 Xcode 并在 Swift 中写作 3.
确保 myLogo
连接到您的故事板(myLogo
声明左侧的小点应该是黑色的)。然后像这样设置它的框架宽度 属性:
let width = UIScreen.main.bounds.width
let r = myLogo.frame
myLogo.frame = CGRect(x: r.origin.x, y: r.origin.y, width: width, height: r.height)
在使用 auto-layout 的 Interface Builder 中这样做可能会更好,因此 myLogo
的宽度被限制为设备的宽度。
这里有一个 useful extension 可让您调整 UIView 框架的各个属性,例如
myLogo.width = UIScreen.main.bounds.width
在我的项目中,我搞砸了两个版本的应用程序。我可能复制了项目文件并产生了问题。这条线
myLogo.frame.size.width = UIScreen.main.bounds.width
表明,UIScreen.main.bounds.width
returns 为零。这怎么可能呢?
fatal error: unexpectedly found nil while unwrapping an Optional value
可能是什么原因,我该如何修复?
我正在研究最新的 Xcode 并在 Swift 中写作 3.
确保 myLogo
连接到您的故事板(myLogo
声明左侧的小点应该是黑色的)。然后像这样设置它的框架宽度 属性:
let width = UIScreen.main.bounds.width
let r = myLogo.frame
myLogo.frame = CGRect(x: r.origin.x, y: r.origin.y, width: width, height: r.height)
在使用 auto-layout 的 Interface Builder 中这样做可能会更好,因此 myLogo
的宽度被限制为设备的宽度。
这里有一个 useful extension 可让您调整 UIView 框架的各个属性,例如
myLogo.width = UIScreen.main.bounds.width