CALayer高清显示

CALayer高清显示

if ([myLayer respondsToSelector:@selector(setContentsScale:)]) {

    myLayer.contentsScale =[[UIScreen mainScreen] scale];

}

CALayer高清显示

This is how to draw a CGLayer correctly forall resolutions.

1.     When first creating the layer, you need tocalculate the correct bounds by multiplying the dimensions with the scale:

int width =25;

int height =25;

float scale = [self contentScaleFactor];

CGRect bounds =CGRectMake(0,0, width * scale,height * scale);

CGLayer layer =CGLayerCreateWithContext(context, bounds.size, NULL);

CGContextRef layerContext =CGLayerGetContext(layer);

2.     You then need to set the correct scale foryour layer context:

CGContextScaleCTM(layerContext, scale, scale);

3.     If the current device has a retina display,all drawing made to the layer will now be drawn twice as large.

4.     When you finally draw the contents of yourlayer, make sure you use CGContextDrawLayerInRect and supply the unscaledCGRect:

5.  CGRect bounds =CGRectMake(0,0, width, height);

CGContextDrawLayerInRect(context, bounds,layerContext);

用于CALayer的动画

CALayer有默认动画效果,如果想完全用自已的,先要removeAllAnimations,再加上自设的animation。如果UIView上有一个CALayer,UIView的的内容没有更新,只有CALayer,则只重绘CALayer就可以,调用[layer setNeedsDisplay]。之前CALayer的内容会自动清除。比VC++高级,对于要更新的区域,不用手动擦除旧的



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值