當前代碼:面膜任意大小的UIImageView與可調整大小的UIImage掩蓋
self.backgroundImageView.image = [self.message imageOfSize:self.message.size]; // Random image, random size
UIImage *rightBubbleBackground = [[UIImage imageNamed:@"BubbleRight"]
resizableImageWithCapInsets:BubbleRightCapInsets
resizingMode:UIImageResizingModeStretch];
CALayer *mask = [CALayer layer];
mask.contents = (id)[rightBubbleBackground CGImage];
mask.frame = self.backgroundImageView.layer.frame;
self.backgroundImageView.layer.mask = mask;
self.backgroundImageView.layer.masksToBounds = YES;
這並不正常工作。儘管應用了蒙版,但rightBubbleBackground
不能正確調整大小以適應self.backgroundImageView
,即使它已調整大小寫切片(BubbleRightCapInsets
)集的大小。
原始圖像:
面膜圖像(rightBubbleBackground
):
結果:
我發現this answer但它只適用於對稱圖像。也許我可以修改這個答案供我使用。
我想'mask.frame = self.backgroundImageView.layer.frame;'應該是'mask.frame = self.backgroundImageView.layer.bounds;'。如果圖層的框架不等於邊界,則使用您的代碼將導致掩碼移位。 – PowerQian