iOS–Core Animation(3)
Core Animation学习笔记
- (void)addSpriteImage:(UIImage *)image
withContentRect:(CGRect)rect
toLayer:(CALayer *)layer {
layer.contents = (__bridge id)image.CGImage;
layer.contentsGravity = kCAGravityResizeAspect;
layer.contentsRect = rect;
}
[self addSpriteImage:image
withContentRect:CGRectMake(0.5,0.5,0.5,0.5)
toLayer:self.view.layer];
contentsCenter是一个CGRect,它定义了一个固定边框和一个在图层上可拉伸的区域。改变contentsCenter的值并不会影响到contents图的显示,除非这个图层的大小改变了,才能看到效果。默认情况下contentsCenter是{0,0,1,1},这意味着如果大小改变了,图片会均匀的拉伸开。但如果增加原点的值并减小尺寸,就会创建拉伸区域。
layer.contentsCenter = rect;
其效果和UIIamge的-resizableImageWithCapInset:的效果十分类似,UIImage的这个方法可以设置inset为图片最中间的1*1的那个区域,这样拉伸图片可用于UITabBar或UITableViewCell的背景图。其实还有个叫.9图片也是同样的原理,不过扯远了。