Ich bin neu in iOS. Ich mache eine Chat-Anwendung. Das Bild unten ist die Tabellennachricht. In jeder Zelle, habe ich 4 Ecken für messageView
und es richtigEcke von UIBezierPath für flexible Ansicht (Ansicht kann Breite Höhe nach Inhalt erhöhen)
self.messageView.layer.cornerRadius = 10.0;
Jetzt angezeigt, möchte ich einige nur meine Nachricht 3 Eckbälle (oben links, unten links, unten rechts) und einige Nachricht haben 3 Ecken (unten links, unten rechts, oben rechts) - wie Facebook Messenger
so ich Benutzer UIBezierPath
für jede Zelle.
Aber meine Nachricht zeigt nicht den vollen Inhalt. Wenn ich jedoch nach oben/unten scrolle, wird die Zelle neu erstellt und angezeigt.
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.messageView.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(10.0, 10.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.messageView.layer.mask = maskLayer;
denke ich, mein Problem ist: Als ich den conners für meine self.messageView
von UIBezierPath
gesetzt, die self.messageView
fertig noch nicht ziehen. so self.messageView.bounds
geben falschen Wert zurück.
Aber ich weiß nicht, wie ich es beheben soll.
Jede Hilfe wäre diese geschätzte
Haben Sie 'sizeToFit' probiert? – schmidt9
@schmidt9 bitte führe mich, wo ich das 'sizeToFit' setzen soll? –
Bitte lesen Sie https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#/apple_ref/occ/instm/UIView/sizeToFit – schmidt9