Ich versuche, die unteren beiden Ecken einer UIView abzurunden, und der Rand der Ebene wird ebenfalls abgerundet angezeigt. Ich mache gerade:Runden Sie einige Ecken von UIView ab und runden Sie den Rand der Ansichtsschicht ab.
UIRectCorners corners = UIRectCornerBottomLeft | UIRectCornerBottomRight;
CGSize radii = CGSizeMake(kThisViewCornerRadius, kThisViewCornerRadius);
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:myView.bounds
byRoundingCorners:corners
cornerRadii:radii];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
[maskLayer setPath:path.CGPath];
myView.layer.mask = maskLayer;
Dies funktioniert gut für normale Ansichten. Allerdings myView
‚s Schicht ihre borderColor
und borderWidth
gesetzt hat, und wie Sie aus dem Screenshot sehen können, ist die Grenze der Schicht nicht gerundet zu werden:
Ich habe auch versucht Subklassen UIView und Rückkehr [CAShapeLayer layer]
von +[Class layerClass]
, und Einrichten der Ebene der Ansicht als einer Formebene, aber der Rand landete unterhalb der Unteransichten der Ansicht.
Ist es möglich, einige der Ecken einer Ansicht zu runden, den Rand der Ebenenansicht zu umrunden und die Unteransichten unterhalb des Rands der Ebene zu beschneiden?
Beachten Sie, dass dies ist nicht über, wie man einige Ecken und nicht andere runden, aber eher, wie man den Anschlag erhält, um sich richtig zu benehmen.
eine Form Schicht hinzufügen, die in die Schicht Hierarchie gestrichen wird? –
Guter Vorschlag, aber ich habe es getestet und der Strich der Formschicht zeigt sich immer noch hinter den Unteransichten der Ansicht. –
Eigentlich hat mich dein Kommentar auf den richtigen Weg gebracht, und ich habe es schließlich bekommen. Ich werde es als Antwort posten. Vielen Dank! –