Aktuelle Code-Maske:Mask Größe UIImageView beliebig veränderbare 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;
Dies funktioniert nicht richtig. Obwohl die Maske angewendet wird, wird die rightBubbleBackground
Größe nicht korrekt angepasst, um self.backgroundImageView
zu passen, obwohl es Größenänderung Cap-Einfügungen (BubbleRightCapInsets
) festgelegt hat.
Originalbild:
Maskenbild (rightBubbleBackground
):
Ergebnis:
Ich fand this answer, aber es funktioniert nur für symmetrische Bilder. Vielleicht könnte ich diese Antwort für meine Verwendung ändern.
Ich denke 'mask.frame = self.backgroundImageView.layer.frame; 'sollte' maske.frame = self.backgroundImageView.layer.bounds '' sein. Wenn Sie den Code verwenden, wird die Maske verschoben, wenn der Rahmen der Ebene nicht den Grenzen entspricht. – PowerQian