Uitableviewcell Zubehör Offenlegung Indikator Forex
Wenn eine Zelle in einem UITableView zu einer Unteransicht führt, kann es nützlich sein, einen zusätzlichen visuellen Kontext zu haben. Ein Offenlegungsindikator in einem UITableViewCell ist ein kleiner Chevron, der am rechten Rand angezeigt wird, um visuell anzuzeigen, dass er irgendwo führt. Beispielsweise sehen Sie sich den Ordner 8220History8221 im Mobile Safari an. Lesezeichen: Nifty, hier8217s wie es geht: 8211 (UITableViewCell) tableView: (UITableView) tableView cellForRowAtIndexPath: (NSIndexPath) indexPath static NSString CellIdentifier quotCellquot UITableViewCell cell tableView dequeueReusableCellWithIdentifier: CellIdentifier if (Zelle nil) Zelle UITableViewCell alloc initWithStyle: UITableViewCellStyleDefault reuseIdentifier: CellIdentifier autorelease Denken Sie daran, dass ein Offenlegungsindikator nur für visuellen Kontext es doesn8217t tatsächlich alles tun. Sie müssen die Unteransicht noch implementieren, die Sie anzeigen möchten. Custom-Colored Disclosure Indicators Manchmal möchten Sie vielleicht eine andere Hintergrundfarbe auf Ihren Tabellenansichten als Apple White haben. Ein Problem werden Sie höchstwahrscheinlich vor, dass dies macht es unmöglich, die regelmäßige Tabelle Ansicht Zelle Zubehör verwenden. Schwarze Pfeile auf schwarzem Hintergrund sind etwas schwer zu sehen. Sie müssen Ihre eigenen zeichnen. Und in diesem Beitrag werde ich Ihnen zeigen, wie ich es gemacht habe. Gerade heute entdeckte ich einen Mechanismus, der es einfacher bildet, Ihre eigene kundenspezifische farbige Zusatzansicht zu rollen. Der Eigenschaftsname, der das Wort 8220view8221 enthält, ist in diesem Fall etwas irreführend. Sie könnten versucht sein, Ihre eigene UIView-Unterklasse zu erstellen und die drawRect zu zeichnen, um dort zu zeichnen. Dies hat jedoch einen Nachteil, Sie können die Farben nicht umschalten, wenn die Zelle hervorgehoben wird. Update 1. Februar 2013: DTCustomColoredAccessory in diesem Artikel ist jetzt Teil unserer Open Source DTFoundation und unter einer BSD-Lizenz mit 2 Klauseln abgedeckt. Sie können es entweder mit Zuschreibung kostenlos verwenden oder Sie können eine nicht-Attribut-Lizenz in unserem Ersatzteil-Shop erwerben. BSA Banner UIView verfügt nicht über die ausgewählten Eigenschaften. Aktiviert und hervorgehoben. Für diese musst du dich an UIControl wenden, was tut. Und ich entdeckte, indem ich es ausprobiert, dass, wenn Sie don. 17 17 17 17 t verwenden ein UIView für Ihre benutzerdefinierten farbigen Zubehör, sondern UIControl stattdessen, dann diese Eigenschaften glücklich ausgelöst durch die Tabellenansicht selbst. Sie müssen nur die richtige Zeichnungsfarbe wählen, die auf dem aktuellen Zustand basiert. Hier ist meine Implementierung eines Offenlegungsindikators, der jede Farbe für den regulären und den hervorgehobenen Zustand haben kann. Nette Hinzufügung 8211 danke. Ich tweaked ein wenig, so dass es Häkchen zu tun können. Fügen Sie einfach eine BOOL-Eigenschaft für die Prüfung hinzu: (CustomColouredDisclosure) ZubehörWithColor: (UIColor) Farbe CustomColouredDisclosure ret CustomColouredDisclosure alloc initWithFrame: CGRectMake (0, 0, 15.0, 15.0) autorelease ret. accessoryColor color 8211 (void) drawChevron: (CGRect) rect (x (Ctxt, xR, yR) CGContextAddLineToPoint (ctxt, xR, yR) CGFloat C CGFloat C CGect () y) CGContextAddLineToPoint (ctxt, xR, yR) CGContextSetLineCap (ctxt, kCGLineCapSquare) CGContextSetLineJoin (ctxt, kCGLineJoinMiter) CGContextSetLineWidth (ctxt, 3) if (self. highlighted) self. highlightedColor setStroke sonst self. accessoryColor setStroke 8211 (void) drawCheck :( CGRect) rect (x, y) ist die Spitze des Pfeils CGFloat CGRectGetMaxX x (self. bounds) -3,0 CGFloat y 3 konst CGFloat R 3.5 CGContextRef ctxt UIGraphicsGetCurrentContext () CGContextMoveToPoint (ctxt, x, y) CGContextAddLineToPoint (ctxt, x - 1.8R, Y3R) CGContextAddLineToPoint (ctxt, x-2.7R, Y2R) CGContextSetLineCap (ctxt, kCGLineCapRound) CGContextSetLineJoin (ctxt, kCGLineJoinRound) CGContextSetLineWidth (ctxt, 3) if (self. highlighted) self. highlightedColor setStroke sonst self. accessoryColor setStroke 8211 (void) drawRect: (CGRect) rect if (self. check) Selbst drawCheck: rect sonst selbst drawChevron: rect
Comments
Post a Comment