我当时正在迅速编写程序,而现在我注意到我可以直接访问CGRect框架的width和height属性,而无需使用CGSizewidth和height。那就是我现在能够编写这样的代码。
CGRect
CGSize
@IBOutlet var myView: UIView! override func viewDidLoad() { super.viewDidLoad() var height = myView.frame.height var height1 = myView.frame.size.height }
在目标C中,当我尝试编写相同的代码时,该行将height = view.frame.height引发错误。谁能告诉我这两行代码的区别(如果有)。
height = view.frame.height
我只是研究了CGRect结构参考。在Swift中,定义了一个扩展,该扩展具有成员height和width。请看下面的代码
height
width
struct CGRect { var origin: CGPoint var size: CGSize } extension CGRect { ... var width: CGFloat { get } var height: CGFloat { get } ... }
所以,你可以直接读取height,并width从价值观CGRect。如您所见,这些仅仅是getters,因此,如果尝试使用以下方法设置这些值,则会收到错误消息view.frame.height = someValue
getters
view.frame.height = someValue