I was writing a program in swift and just now I noticed that I can directly access a CGRect
frame's width and height properties directly without using the CGSize
width and height. That is I am now able to write a code like this.
@IBOutlet var myView: UIView!
override func viewDidLoad()
{
super.viewDidLoad()
var height = myView.frame.height
var height1 = myView.frame.size.height
}
In Objective C, when I tried to write the same code, the line height = view.frame.height
is throwing an error. Can anyone please tell me the difference(if any) in these two lines of code.
I just looked into the CGRect
structure reference. In Swift there is an extension defined which have members height
and width
. Please have a look at the code below
struct CGRect {
var origin: CGPoint
var size: CGSize
}
extension CGRect {
...
var width: CGFloat { get }
var height: CGFloat { get }
...
}
So that you can directly fetch height
and width
values from a CGRect
. As you can see these are only getters
, so you will get an error if you try to set these values using view.frame.height = someValue