2012-04-11 5 views
0

Ich versuche ein Textfeld in objective-c mit einem großen Eckenradius zu erstellen, wie das searchField in iOS. In meinem XIB habe ich ein UITextField hinzugefügt. I Stil der Textfeld in Objective-C wie folgt aus:UITextView mit Eckenradius: Weißer Hintergrund des Eingangs überschneidet sich mit den runden Ecken

// corner radius 
textField.layer.cornerRadius = 20.0f; 
textField.layer.masksToBounds = YES; 
textField.backgroundColor = [UIColor clearColor]; 

[textField setFont:[UIFont fontWithName:@"Univers-Condensed-Medium" size:18.0]]; 

Ergebnis: Die Ecken des Eingangs nicht sichtbar sind, einige weißen Hintergrund überlagert diese. Sie können das Problem in diesem Bild sehen:

Screenshot of the problem

habe ich versucht, einige Dinge wie:

textField.leftView.opaque = NO; 
textField.leftView.backgroundColor = [UIColor clearColor]; 

textField.inputView.opaque = NO; 
textField.inputView.backgroundColor = [UIColor clearColor]; 

textField.rightView.opaque = NO; 
textField.rightView.backgroundColor = [UIColor clearColor]; 

ich auch ein Symbol hinzugefügt (nur zum Testen) ergaben alle das gleiche Ergebnis. Was muss ich tun, um die Ecken sichtbar zu machen?

Antwort

2

Ich hatte einige Tests und keine weißen Hintergrundüberlappungen gemacht, es ist nur so das Textfeld sieht aus, wenn Sie den Eckenradius ändern. Versuchen Sie, die Hintergrundfarbe der UIView zu ändern, in der sich das Textfeld befindet, und sehen Sie, dass es immer so ist.

Leider, wenn Sie den cornerRadius ändern möchten und es in der Art angezeigt werden soll, wie Sie hier gepostet haben, müssen Sie vielleicht ein Hintergrundbild verwenden, ich weiß es nicht.

Wenn ich Sie wäre, würde ich das TextField ohne den cornerRadius verwenden.

+0

OK, ich verstehe was du meinst. Ich sehe einige Threads im Internet, wo Leute es funktionierten, alles andere, was ich falsch mache, warum die Textbox so erscheint? – Bocaxica

+0

Sie können einen Rahmen so einrichten wie '[textField.layer setBorderWidth: 1.0];' hängt davon ab, was Sie wollen, was ich sage ist, dass das Textfeld das erwartete Verhalten für welchen Code zeigt, den Sie hier zeigen. Wenn Sie mir genau zeigen, was Sie wollen, kann ich Ihnen vielleicht mehr helfen. – ggrana

+0

Ich möchte ein Textfeld haben, das genau wie das Suchfeld aussieht. Was ich also versuchte, war, dem Textfeld mit einem UITextBorderStyleBezel einen Eckradius zu geben. Ich nehme an, dass Apple Bilder für den UITextBorderStyleBezel verwendet. Wenn Sie also einen Eckenradius anwenden, werden die Ecken des Bildes nicht angezeigt. Ich habe es jetzt gelöst, indem ich ein benutzerdefiniertes Hintergrundbild für das Textfeld verwendet habe. – Bocaxica

Verwandte Themen