Ich habe ein Rechteckbild (jpg) und möchte es verwenden, um den Hintergrund einer Schaltfläche mit einer abgerundeten Ecke in xcode zu füllen.
Ich habe folgendes geschrieben:
UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];
Bei der Schaltfläche, die ich mit diesem Ansatz erhalte, sind die Ecken jedoch nicht abgerundet. Stattdessen handelt es sich um ein einfaches Rechteck, das genau wie mein Originalbild aussieht. Wie kann ich stattdessen ein Bild mit abgerundeten Ecken erhalten, um meine Schaltfläche darzustellen?
Vielen Dank!
quelle
Sie können durch diese RunTime-Attribute erreichen
Wir können benutzerdefinierte Schaltflächen erstellen. Siehe Screenshot im Anhang.
Bitte beachten Sie:
Befolgen Sie in Laufzeitattributen zum Ändern der Rahmenfarbe die Anweisungen
Erstellen Sie eine Kategorieklasse von CALayer
in h Datei
in m Datei:
Jetzt können Sie den Screenshot für die Farbprüfung der Rahmen festlegen
Vielen Dank
quelle
borderColor
. Aber dann wird immer Schwarz für die borderColor verwendet.@property(nonatomic, assign) UIColor* borderIBColor;
(das nicht mit einem anderen Namen kollidiert) in der Header-Datei zu erstellen. Die Implementierung lautet:-(void)setBorderIBColor:(UIColor*)color{self.borderColor = color.CGColor;} -(UIColor*)borderIBColor{return [UIColorcolorWithCGColor:self.borderColor];}
Vielleicht möchten Sie meine Bibliothek namens DCKit überprüfen . Es ist auf der neuesten Version von Swift geschrieben .
Sie können direkt über den Interface Builder eine Schaltfläche / ein Textfeld mit abgerundeten Ecken erstellen:
Es hat auch viele andere coole Funktionen, wie Textfelder mit Validierung, Steuerelemente mit Rahmen, gestrichelte Rahmen, Kreis- und Haaransichten usw.
quelle
Schieben Sie den Eckenradius nach oben, um einen Kreis zu erhalten:
Wenn der Schaltflächenrahmen ein Quadrat ist, spielt es keine Rolle, ob Frame.Höhe oder Frame.Breite. Verwenden Sie andernfalls den größten von beiden.
quelle
Importieren Sie das QuartCore-Framework, wenn es in Ihrem vorhandenen Projekt nicht vorhanden ist, und importieren Sie es
#import <QuartzCore/QuartzCore.h>
in viewcontroller.mquelle
quelle
Stellen Sie zuerst die Breite = 100 und die Höhe = 100 der Taste ein
quelle
Wenn Sie eine abgerundete Ecke nur zu einer Ecke oder zwei Ecken usw. möchten, lesen Sie diesen Beitrag:
[ObjC] - UIButton mit abgerundeter Ecke - http://goo.gl/kfzvKP
Es ist eine XIB / Storyboard-Unterklasse. Importieren und Festlegen von Rahmen ohne Schreibcode.
quelle
Für Swift:
quelle
wird unter dem folgenden Code verwendet, um die UIButton-Ecke rund zu machen:
quelle
Probieren Sie meinen Code aus. Hier können Sie alle Eigenschaften von UIButton wie Textfarbe, Hintergrundfarbe, Eckenradius usw. festlegen.
Rufen Sie jetzt so an
quelle
Eine alternative Antwort, die auch einen Rahmen festlegt (wodurch er eher einer Schaltfläche ähnelt), ist hier ... So legen Sie einen Rechteckrahmen für den benutzerdefinierten Typ UIButton fest
quelle
Für iOS SWift 4
quelle
Für Ziel C :
Für Swift :
quelle
Swift 4 Update
Ich habe auch viele Optionen ausprobiert, aber ich konnte meinen UIButton nicht in die Enge treiben. Ich habe den
viewDidLayoutSubviews()
Eckradiuscode in " Gelöstes Problem" hinzugefügt .Wir können den CornerRadius auch wie folgt einstellen
quelle