Set UIButton-Layer-Grenze Breite und Farbe im Interface Builder
Kann ich IB_DESIGNABLE und/oder IBInspectable auf einer Ebene einstellen.borderWidth und Schicht.borderColor-in Interface Builder? Ich bin derzeit am erstellen meiner button im code, aber ich möchte in der Lage sein, all dies in IB, aber ich bin mir nicht sicher, ob diese Eigenschaften können festgelegt werden, dass die Art und Weise, in Xcode 6. Ich möchte machen das ein IBOutlet, anstatt all dies im code festgelegt. Hier ist mein code für Schaltfläche jetzt.
directions = [UIButton buttonWithType:UIButtonTypeRoundedRect];
directions.titleLabel.textAlignment = NSTextAlignmentCenter;
directions.titleLabel.font = [UIFont fontWithName:@"FranklinGothicStd-ExtraCond" size:20.0];
[directions setTitle:@"Directions" forState:UIControlStateNormal];
[directions setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
directions.frame = CGRectMake(20, 178, 70, 70);
directions.layer.borderWidth = 2.0f;
directions.layer.borderColor = [UIColor whiteColor].CGColor;
directions.clipsToBounds = YES;
directions.backgroundColor = [UIColor clearColor];
[directions addTarget:self action:@selector(getDirections:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:directions];
Ich diese Werte einstellen wie vorgeschlagen, und die Grenze wird nie gezeigt, in den simulator.
EDIT: ich habe herausgefunden warum die Grenze nicht angezeigt, wenn Sie diese Werte in IB. Die Rahmenfarbe ist ein CGColor, so hatte ich, um es in code.
InformationsquelleAutor der Frage raginggoat | 2014-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tatsächlich können Sie einige Eigenschaften der view Schicht durch den interface builder. Ich weiß, dass kann ich eine Ebene borderWidth und cornerRadius durch xcode. borderColor nicht funktioniert, wahrscheinlich, weil die Schicht will eine CGColor, anstatt ein UIColor.
Müssen Sie möglicherweise die Verwendung von Strings statt zahlen, aber es funktioniert!
Aber Sie können Sie Kategorien verwenden, um proxy-Eigenschaften wie layer.borderColor. (Aus dem ConventionalC CocoaPod)
CALayer+XibConfiguration.h:
CALayer+XibConfiguration.m:
Wird das Ergebnis deutlich, während der Laufzeit, nicht in Xcode.
InformationsquelleAutor der Antwort Baig
Können Sie einstellen, die meisten von denen, die im interface builder hinzufügen von runtime-Attribute für die Elemente:
Schicht für Schicht.borderWidth = 2.0 f; wäre:
Wählen Sie die Schaltfläche und fügen Sie ein neues Attribut
Schlüsselpfad : layer.borderWidth
Typ: Anzahl
Wert 2
Diese Veränderungen werden nicht sichtbar im inneren des interface-builder, nur zur Laufzeit
InformationsquelleAutor der Antwort Istvan
yes u can
in der rechten Seite klicken Sie auf den identity-Inspektor, u finden, wie dies
klicken Sie auf
+
imUser Defined Runtime Attributes
wählen Sie
keypath
und Bearbeiten esden code schreiben, wie diese
layer.cornerRadius
und inType
ändern Sie den Typ aufnumber
und legen Sie ur gewünschten Wert wie dieseu können auch den text ändern, Farben und so viele.
Happy coding
InformationsquelleAutor der Antwort sreekanthk