序言:我們在UI界面布局時,繪圖渲染是必須要用到坐標(biāo)系,只有根據(jù)坐標(biāo)系才能完成布局。蘋果軟件開發(fā)坐標(biāo)系統(tǒng)跟我們平時生活中的坐標(biāo)系還是不一樣的,下面總結(jié)和梳理一下。
- UIView的坐標(biāo)系是左手坐標(biāo)系,即坐標(biāo)原點在屏幕左上角,這也是我們iOS開發(fā)運用最多的。
- NSView的坐標(biāo)系是右手坐標(biāo)系,即坐標(biāo)原點在屏幕左下角。
另外MAC開發(fā)中有一個方法:- (BOOL)isFlipped; 這個方法默認返回NO,及坐標(biāo)原地在屏幕左下角。重寫該方法并返回YES,后便變成了左手坐標(biāo)系。
- Quartz 2d是跨平臺的二維繪圖引擎,其參照的坐標(biāo)是右手坐標(biāo)系,及原點在屏幕左下角。
我們在iOS開發(fā)中,需要通過以下方法進行坐標(biāo)轉(zhuǎn)換,才能準(zhǔn)確繪制出圖形。
CGContextTranslateCTM(context, 0, height);//1. 坐標(biāo)往下移動屏幕的高度 CGContextScaleCTM(context, 1.0, -1.0);//2. 坐標(biāo)以X軸翻轉(zhuǎn)如今UIKit的高層方法已經(jīng)為我們做了坐標(biāo)變換的工作,比如UIImage的drawInRect的方法等。
- CALayer的坐標(biāo)系比較特殊,在iOS系統(tǒng)中是左手坐標(biāo)系,坐標(biāo)原點在左上角;在MAC OS中是右手坐標(biāo)系,坐標(biāo)原點在左下角。