最近在看core animation , 今天來談談calayer 和 uiview 中的重繪的一些認識:
我們都知道uiview裡面有個成員layer,利用這個這個layer我們可以設定一些圓角,陰影什麼的,或者
self.view.layer.contents = (__bridge id)([uiimage imagenamed:@"calayer_bg"].cgimage);
在這裡我就不過多的闡述uiview和calayer的異同了。
建立乙個calayer的乙個子類customlayer,重寫
@implementation customlayer// 重寫該方法,在該方法內繪製圖形
- (void)drawincontext:(cgcontextref)ctx
@end
然後再某個vc上進行使用
.....customlayer *layer = [customlayer layer];
// 設定layer的屬性
layer.backgroundcolor = [uicolor browncolor].cgcolor;
layer.bounds = cgrectmake(0, 0, 200, 200) ;
layer.anchorpoint = cgpointzero;
layer.position = cgpointmake(100, 100);
layer.cornerradius = 20;
layer.shadowcolor = [uicolor blackcolor].cgcolor;
layer.shadowoffset = cgsizemake(10, 20);
layer.shadowopacity = 0.6;
[layer setneedsdisplay];
[self.view.layer addsublayer:layer];
......
在自定義layer中的-(void)drawincontext:方法不會自己呼叫,只能自己通過setneeddisplay方法呼叫.
在view中畫東西drawrect:方法在view第一次顯示的時候會自動呼叫。
上面是第一種方法使得layer重繪。其實還有方法二,就是 設定layer的delegate為vc,在vc上實現
- (void)drawlayer:(calayer *)layer incontext:(cgcontextref)ctx,我們這個時候在customlayer不需要再去重寫 -(void) drawincontext:
- (void)drawlayer:(calayer *)layer incontext:(cgcontextref)ctx
待續
iOS重繪機制drawRect
ios的繪圖操作是在uiview類的drawrect方法中完成的,所以如果我們要想在乙個uiview中繪圖,需要寫乙個擴充套件uiview 的類,並重寫drawrect方法,在這裡進行繪圖操作,程式會自動呼叫此方法進行繪圖。下面先說明一下繪圖,比如,你想繪製乙個方塊,你需要寫乙個類來擴充套件uivi...
iOS重繪機制drawRect
ios的繪圖操作是在uiview類的drawrect方法中完成的,所以如果我們要想在乙個uiview中繪圖,需要寫乙個擴充套件uiview 的類,並重寫drawrect方法,在這裡進行繪圖操作,程式會自動呼叫此方法進行繪圖。下面先說明一下繪圖,比如,你想繪製乙個方塊,你需要寫乙個類來擴充套件uivi...
iOS重繪機制drawRect
如何使用iphone進行繪圖 重繪操作 iphone的繪圖操作是在uiview類的drawrect方法中完成的,所以如果我們要想在乙個uiview中繪圖,需要寫乙個擴充套件uiview 的類,並重寫drawrect方法,在這裡進行繪圖操作,程式會自動呼叫此方法進行繪圖。下面先說明一下繪圖,比如,你想...