webentwicklung-frage-antwort-db.com.de

Zeichnen einer Linie im Interface Builder in Xcode 4

Ich möchte im Interface Builder eine einfache Hilfslinie zeichnen, um einige Elemente in einer Liste zu trennen und die Benutzeroberfläche etwas aufgeräumter zu machen. Ich sehe keine "Linie" oder ähnliche Objekte in der Objektbibliothek und kann im Interface Builder keine Zeichenbefehle finden.

26
Kongress

Ich verwende eine sehr enge UIView mit backgroundColor auf die entsprechende Farbe. 

62
Drew C

Es gibt keine Zeilen in der iPhone-UI-Bibliothek. Diese Funktionalität wurde unter Max OS X von NSBox bereitgestellt, auf dem iPhone gibt es jedoch kein entsprechendes UI-Element.

7
EJV

Wenn Sie befürchten, dass ein UIView die Leistung beeinträchtigen könnte, können Sie mit den CAShapeLayers von CoreGraphics eine Linie im Code zeichnen.

Jedes UIView verfügt über einen CALayer. Zeichnen Sie die Linie und fügen Sie sie den Ansichten CALayer hinzu. Sie können dies entweder in einem benutzerdefinierten UIView-DrawRect oder in Ihrem View-Controller tun:

(Stellen Sie sicher, dass Sie Ihrem Projekt ein Quartz-Framework hinzufügen.)

UIBezierPath *linePath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0,self.view.frame.size.width, 1)];

//shape layer for the line
CAShapeLayer *line = [CAShapeLayer layer];
line.path = [linePath CGPath];
line.fillColor = [[UIColor blackColor] CGColor];
line.frame = CGRectMake(xPosition, yPosition, self.view.frame.size.width,1);

[self.view.layer addSublayer:line];
7
JoriDor

Warum verwenden Sie nicht einfach eine Beschriftung und legen die entsprechende Hintergrundfarbe fest?

1
CodeRed

Sie können die Fortschrittsansicht als Option für eine horizontale Linie verwenden. Ändern Sie einfach die Tönungsfarbe und gehen Sie zu 1 weiter, was 100% ist.

0
Repose

Mit dem Interface Builder können Sie keine Schatten zeichnen, die für eine Einfügungslinie wesentlich sind. Wenn Sie mit Photoshop arbeiten, wissen Sie das. 

Der folgende Code zeichnet eine "Einfügung", wenn sich die Linie vor einem weißen/beigen Hintergrund befindet.

UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 1.0f)];
line.backgroundColor = [UIColor colorWithRed:(200.0f/255.0f) green:(200.0f/255.0f) blue:(200.0f/255.0f) alpha:1.0f];
line.layer.shadowColor = [UIColor darkGrayColor].CGColor;
line.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
line.layer.shadowRadius = 0.5f;
line.layer.shadowOpacity = 0.4f;
line.layer.masksToBounds =NO;
[Background addSubview:line];

Denken Sie daran, <QuartzCore/QuartzCore.h> zu importieren.

0
chongsj

Ich habe eine Ansicht verwendet und sie enger gefasst und die Farbe so geändert, dass sie wie eine Linie aussieht. Mein Problem ist jedoch, dass ich die Linie in einer vertikalen Bildlaufansicht verwende, und die Linien werden auch gescrollt.

0
confucizious

Fügen Sie als alliterative - in Interface Builder eine Ansicht hinzu, deren Höhe auf 2 Punkte festgelegt ist. Verbinden Sie ein IBOutlet mit dieser Ansicht und legen Sie Farbe und Breite des Ebenenrahmens fest:

self.mySeparatorLine.layer.borderWidth = 1.0f; self.mySeparatorLine.layer.borderColor = [UIColor lightGrayColor] .CGColor;

0
user2791976