2013-09-24 20 views
5

Ich versuche, einen halbtransparenten Rahmen um eine UIView zu machen. Die Idee ist, ein Bild zu zeigen, aber die Grenze bedeckt den Rand des Bildes, aber Sie können immer noch sehen, was hinter der Grenze ist. Ich möchte, dass die Grenze unterschiedliche Randbreiten für die verschiedenen Seiten hat. Auf der Oberseite möchte ich eine Grenze von 80 Punkten haben, auf der Unterseite möchte ich eine Grenze von 60 Punkten, und auf den Seiten möchte ich eine Grenze von 10 Punkten. Ich weiß, dass mit dem Code:Wie erstelle ich einen benutzerdefinierten Rahmen um eine UIView?

UIView.layer.borderColor = [UIColor blueColor].CGcolor; 
UIView.layer.borderWidth = 10; 

gibt Ihnen einen einheitlichen Rand der Breite 10, die alle um die Innenseite des UIView, aber wie stelle ich verschiedene Rahmenbreiten für verschiedene Seiten des UIView?

+1

Möglicherweise müssen Sie die QuartzCore-Programmierung untersuchen, um einen Pfad um den Rand einer Ansicht herum zu zeichnen und die Farbe in jeder Zeile des Pfads zu ändern. Sie sollten nicht zu lange zum Lernen und Experimentieren brauchen. –

Antwort

0

Hier ist eine einfache Lösung. Fügen Sie ein Etikett in Ihren UIView ein, löschen Sie den Text auf dem Etikett und legen Sie die Hintergrundfarbe des Etiketts als Rahmenfarbe fest. Legen Sie den Ursprung (x, y) Ihres Labels als Ursprung (x, y) Ihrer Ansicht fest. Legen Sie die Breite des Etiketts auf die Breite Ihrer UIView fest, und legen Sie die Höhe auf 1 oder 2 fest (für Ihre Rahmenhöhe oben in der UIView). Und das sollte den Trick machen. Oder Sie können die UIBezierPath-Klasse für das gleiche verwenden.

+5

Warum brauchst du dafür ein 'UILabel'? Warum nicht eine 'UIView' verwenden? – rmaddy

+0

Am Ende habe ich UIViews hinzugefügt. –

1

Mein Wissen, es ist nicht möglich zu bekommen, was Sie wollen, nur mit den Eigenschaften eines UIView oder seiner Rückschicht. Möglicherweise müssen Sie einen oder mehrere UIViews verwenden, die den gewünschten Rahmen enthalten (möglicherweise als benutzerdefinierte Grafik) und ihn über Ihrem Bild überlagern.

1

Es gibt einige Arbeit um dies zu tun. 1. Fügen Sie eine Bildansicht am Ende von jedem anderen Element oder Index 0 hinzu. Fügen Sie ein Bild mit Rahmen hinzu. Fügen Sie weitere Ansichten hinzu, indem Sie die Ränder der Ränder verlassen. Bild kann auf der Oberseite sein, aber als nur Boarders sollte fest sein, Rest des Bildes sollte transparent sein. 2. Fügen Sie Ihre Ansicht in einer Ansicht hinzu und fügen Sie Boarder in der Superansicht hinzu. Ihr View-Frame sollte in dieser Boarder sein.

Verwandte Themen