我已經看到這種替代,以便用CGRectMake()
初始化一個CGRect
變量:CGRectMake替代
的CGRect幀=(的CGRect){0,0,10,10};
我的問題是,CGRect frame = (CGRect){0,0,10,10};
是如何工作的?幕後發生了什麼?它看起來像一個C風格的數組正在被初始化({x,y,w,h}
),然後被鑄造爲一個CGRect
結構 - 這是正確的嗎?如果是這樣,如何將一個c樣式數組作爲一個結構體?
N.B.我不是問使用CGRectMake()
的上述替代方法是否合適,我只想了解它爲什麼/如何工作。
如果兩個語句創建字節的相同順序它只是工作。 但是,我很困惑,你正在使用0和10而不是0.0和10.0。 0和10將被編譯爲整數常量,0.0和10.0會出現在als float/double常量中。因此,我懷疑你可以使用float作爲合法框架來使用任何有用的東西。 CGRect是由CGPoint和CGSize組成的結構。它們都由兩個CGFload成員組成(在CGPoint的情況下爲x和y,在CGSize的情況下爲寬度和高度)。 – 2012-08-07 08:54:20