frame.size.width和frame.width之间的区别

Har*_*nan 12 ios cgrect cgsize swift xcode6

我正在用swift编写一个程序,刚才我注意到我可以直接访问CGRect框架的宽度和高度属性而不使用CGSize宽度和高度.那就是我现在能够编写这样的代码.

@IBOutlet var myView: UIView!

override func viewDidLoad()
{
    super.viewDidLoad()
    var height = myView.frame.height
    var height1 = myView.frame.size.height
}
Run Code Online (Sandbox Code Playgroud)

在Objective C中,当我尝试编写相同的代码时,该行height = view.frame.height会抛出错误.任何人都可以告诉我这两行代码中的差异(如果有的话).

Vin*_*ain 25

我只是查看了CGRect结构参考.在Swift中有一个扩展定义,它有成员heightwidth.请看下面的代码

struct CGRect {
var origin: CGPoint
var size: CGSize
}

extension CGRect {
    ...
    var width: CGFloat { get }
    var height: CGFloat { get }
    ...
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以直接从a中获取heightwidth赋值CGRect.正如您所看到的getters那样,如果您尝试使用这些值设置,则会出现错误view.frame.height = someValue