Sunday 16 April 2017

Uitableviewcell Offenlegung Indikator Forex


Haben Sie alle frustriert mit dem kleinen kreisförmigen Touch-Bereich bei der Einstellung der Zubehör-Typ einer UITableViewCell zu UITableViewCellAccessoryDisclosureIndicator Es sei denn, Sie haben Kinderfinger, it8217s sehr schwierig, konsequent zu wählen. Hier8217s eine Möglichkeit, die Benutzererfahrung zu verbessern und den gleichen Effekt eines größeren Touchpads zu erstellen, wie du auf der YouTube Anwendung sehe. Um dies zu tun, müssen Sie eine benutzerdefinierte Tabellenansichtzelle implementieren. Sie können entweder eine eigene Unterklasse erstellen, oder Sie können Subviews zum cell8217s contextView hinzufügen. Dieses Beispiel zeigt, wie man das letztere macht. Beim Einrichten meiner UITableViewCells möchte ich Methoden erstellen, die die Elemente zur Verfügung stellen, die ich verwenden möchte, um das cell8217s contentView hinzuzufügen. Hier schaffe ich einen UIButton vom Typ UIButtonTypeDetailDisclosure, der jeder Zelle in der Tabelle hinzugefügt werden soll. Die Schaltfläche besitzt eine Fläche von 44 x 44 Pixeln und belegt den rechten Bereich der Tabellensichtzelle, die 320 Pixel breit und 44 Pixel groß sein wird. Beachten Sie hier, dass Sie ein Ziel und eine eigene Aktion definieren, anstatt die im UITableViewDelegate-Protokoll definierten Callbacks für den Zubehörtyp zu verwenden. Im Folgenden wird gezeigt, wie Sie die Schaltfläche der Zelle in der cellForRowAtIndexPath-Methode in Ihrer Tabellenansicht-Controller-Klasse hinzufügen können. Wenn Sie dem ContentView Subviews hinzufügen, stellen Sie sicher, dass Ihre detaillierte Angabeanzeige oben angezeigt wird. Stellen Sie außerdem sicher, dass Sie die Wiederverwendung Ihrer Zellen ordnungsgemäß behandeln. Schließlich, um das Auswahlereignis zu verarbeiten, benötigen Sie den folgenden Code: 7 Responses to 8220Larger Touch Area für Detail Disclosure Indicator8221 Vielen Dank für den Code. I8217m mit einigen Schwierigkeiten, wenn die Taste tatsächlich eingereicht wird. I8217m Hinzufügen der Schaltflächenansicht nach I8217ve subclassed eine UITableViewCell mit mehreren Labels. Die Schaltfläche ist gut, aber I8217m kann den IndexPath nicht für diese ausgewählte Zelle zurückgeben. I8217m mit dem SeismicXML Beispiel, um meine UITableView zu bauen. Der Code innerhalb der 8211 (void) detailDiscolosureIndicatorSelected: (UIButton) Absender doesn8217t erlauben mir, irgendwelche der Daten zu packen, die mit meiner Zelle verbunden sind. Irgendwelche Vorschläge I8217m wirklich in der Notwendigkeit, eine UIButton hinzugefügt, um eine UITableViewCell auf ihre eigenen Aktionen zu reagieren. Vielen Dank für die Anfrage Ein Weg zu gehen ist, speichern Sie die Zeilennummer im Tag-Attribut der Schaltfläche beim Erstellen der Zelle. Auf diese Weise hast du diese Daten im Senderobjekt. Dieser Ansatz wird weniger nützlich (oder komplizierter), wenn Ihre Tabellenansicht mehr als einen Abschnitt besitzt. I8217m sicher gibt es mehr elegante Ansätze. Mit dem Code unten sollte auch funktionieren, aber das Experimentieren heute Morgen zeigte mir, dass es nicht die richtigen Daten zumindest für meine Umsetzung. NSIndexPath indexPath tableView indexPathForSelectedRow Halten Sie mich auf, wie es geht Danke für diesen Tipp. Ich habe die Tag-Eigenschaft der Schaltfläche verwendet, um den Zellenindex zu speichern, als ich die Schaltfläche erstellt habe und ich konnte sie verwenden, um eine Aktion auszurichten, die auf der button8217s-Zelle basiert, obwohl die Schaltfläche nicht an die Zelle gebunden ist. Hast du den Zubehör-Beispielcode beim SDK gesehen. Der IndexPath ist durch den Berührungspunkt auf die Ansicht gekommen. CGPoint currentTouchPosition touch locationInView: self. tableView NSIndexPath indexPath self. tableView indexPathForRowAtPoint: currentTouchPosition I8217m versucht, die Tag-Eigenschaft wie you8217ve zu verwenden, die oben erwähnt wurde, aber can8217t bekommen es zu arbeiten. Würde es dir etwas ausmachen, den Code zu schreiben, wie dies zu tun ist Nach dem Setzen des Button8217s Tag Wert, wenn ich die Schaltfläche erstellen, I8217ve versucht mit sender. tag, um den Wert abzurufen, wenn die Schaltfläche gedrückt wird, aber mein Code won8217t kompilieren. Ich bekomme nur eine 8216Anfrage für Mitglied nicht eine Struktur oder union8217 Fehler. Jeder Beispielcode wäre willkommen. Zu Gary Zuerst den Absender auf die Schaltfläche UIButton-Taste (UIButton) sender int tagbutton. tag albertofloyd, vielen Dank für Ihre Erwähnung Zubehör Beispiel. Es löst genau alle Probleme, die mit indexPath und UIButton Aktionen verbunden sind. Hinterlasse eine AntwortWenn eine Zelle in einem UITableView zu einer Subview führt, kann es sinnvoll 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. Zum Beispiel, werfen Sie einen Blick auf die 8220History8221 Ordner in der Mobile Safari Bookmarks: Nifty, rechts Here8217s, wie es zu tun: 8211 (UITableViewCell) tableView: (UITableView) tableView cellForRowAtIndexPath: (NSIndexPath) indexPath statisch NSString CellIdentifier quotCellquot UITableViewCell Zelle tableView dequeueReusableCellWithIdentifier: CellIdentifier if (cell nil) cell UITableViewCell alloc initWithStyle: UITableViewCellStyleDefault reuseIdentifier: CellIdentifier autorelease Denken Sie daran, dass ein Offenlegungsindikator nur für visuellen Kontext ist es doesn8217t tatsächlich alles tun. Sie müssen noch die Subview implementieren, die Sie anzeigen möchten.

No comments:

Post a Comment