ios calayer的contents怎么切圆

2025-05-09 05:20:48
推荐回答(1个)
回答1:

对此问题的答复是这个。让假设您有一可拉伸图像,只有在宽度中拉伸和具有高度固定 (为方便起见)。
该图像是 31px 宽度 (不会延伸 15px 固定大小--,将拉伸 1px 的)
假设您的层一个 CALayer 子类 init 方法应类似于:
- (id)init
{
self = [super init];
if (self) {
UIImage *stretchableImage = (id)[UIImage imageNamed:@"stretchableImage.png"];
self.contents = (id)stretchableImage.CGImage;

self.contentsScale = [UIScreen mainScreen].scale; //<-needed for the retina display, otherwise our image will not be scaled properly

self.contentsCenter = CGRectMake(15.0/stretchableImage.size.width,0.0/stretchableImage.size.height,1.0/stretchableImage.size.width,0.0/stretchableImage.size.height);
}
return self;
}

根据文档 contentsCenter 矩形必须介于 0-1 之间的值。
默认值为单元矩形 (0.0,0.0) (1.0,1.0) 正在进行缩放整个图像中产生。如果该矩形单元矩形外延伸,结果是未定义的。
这是它。希望其他人能找到这很有用,它将节省一些开发时间。