Ich möchte eine benutzerdefinierte Version der Standard-Offenlegung Zubehör Bild in meinem UITableView verwenden. Wie kann ich das machen? Ich hoffe, dass Sub-Classing UITableViewCell ist nicht notwendig für etwas so grundlegend.Wie kann ich das Bild für die Zubehöranzeige in einer UITableViewCell anpassen?
Antwort
Sie müssen eine benutzerdefinierte Ansicht erstellen und sie der accessoryView
-Eigenschaft des Objekts UITableViewCell
zuweisen. Etwas wie:
myCell.accessoryView = [[ UIImageView alloc ]
initWithImage:[UIImage imageNamed:@"Something" ]];
Ich lief in das gleiche Problem wie Greg - das Zubehör Ansicht verfolgen nicht (wenn Sie eine UIImageView verwenden)
ich es wie folgt gelöst:
UIImage * image = [ UIImage imageNamed:@"disclosure-button-grey.png" ] ;
UIControl * c = [ [ UIControl alloc ] initWithFrame:(CGRect){ CGPointZero, image.size } ] ;
c.layer.contents = (id)image.CGImage ;
[ c addTarget:self action:@selector(accessoryTapped:) forControlEvents:UIControlEventTouchUpInside ] ;
cell.accessoryView = c ;
[ c release ] ;
Warum nicht einfach ein einfaches UIButton mit einem Bild verwenden, anstatt mit Layerinhalten herumzuhantieren? –
Ich habe das Gefühl, dass ich das versucht habe und es aus irgendeinem Grund nicht funktioniert hat? Aber sicher, versuchen Sie mit UIButton zuerst ... – nielsbot
Wenn Sie ein benutzerdefiniertes Bild verwenden, kann sich der Standort ändern, und Benutzer haben möglicherweise Probleme beim Klicken, da der Rahmen möglicherweise klein ist. Am besten wäre es, über der Zubehöransicht eine Subview-Schaltfläche hinzuzufügen, so dass Sie Größe und Position verwalten können. – david72
- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIImage *indicatorImage = [UIImage imageNamed:@"Arrow.png"];
cell.accessoryView =[[[UIImageView alloc] initWithImage:indicatorImage] autorelease];
return cell;
}
gut ich tun dies mit dem Code Hilfe gegeben oben
HINWEIS: Stellen Sie eine benutzerdefinierte Zelle zu markieren: 0 gewonnen. Dieses Tag ist für die textLabel-Ansicht reserviert. Wenn Sie Tags in Xcode Storyboard, , setzen, müssen Sie die Tags für benutzerdefinierte Ansichten/Labels auf 1 oder höher setzen.
Hinweis Apple Beispiel:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
UILabel *label;
label = (UILabel *)[cell viewWithTag:1];
label.text = [NSString stringWithFormat:@"%d", indexPath.row];
label = (UILabel *)[cell viewWithTag:2];
label.text = [NSString stringWithFormat:@"%d", NUMBER_OF_ROWS - indexPath.row];
return cell;
}
ich es tun würde, wie folgt:
UIImageView *chevronImgVw = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"chevron_accessory_vw_img.png"]];
chevronImgVw.frame = CGRectMake(cell.accessoryView.frame.origin.x, cell.accessoryView.frame.origin.y, 10, 20);
cell.accessoryView = chevronImgVw;
bitte dieses, bevor Sie versuchen, nach unten Stimme! Weil es im Moment 2 upvotes und 2 downvotes gibt!
Ich habe versucht, den oben genannten Code und es scheint nicht mehr zu funktionieren, vielleicht aufgrund des Alters dieses Beitrags, so werde ich meine Linie werfen, die mir die maßgeschneiderte Zubehöransicht gab.
[cell setAccessoryView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrowBtn"]]];
Hoffe jemand findet das nützlich.
Tom, die akzeptierte Antwort auf diesen Eintrag ist genau das Gleiche. Was fehlt mir hier? – jpm
Es gibt eine nice example from Apple, die zeigt, wie man UIControl
verwendet, um diese Art von AccessoryView-Anpassung zu erfüllen.
Das Überschreiben - (void)drawRect:(CGRect)rect
in UIControl ist nicht der einfachste Weg, aber gibt Ihnen viel Flexibilität, um schöne Zubehöransichten zu gestalten.
- 1. Wie kann UITableViewCell die Höhe an den Inhalt anpassen?
- 2. wie kann ich anpassen Bild crop
- 3. UITableViewCell anpassen
- 4. Wie kann ich das FreeTextBox-Menü anpassen?
- 5. UITableViewCell programmgesteuert anpassen
- 6. Wie kann ich die UITableViewCell-Hervorhebung deaktivieren?
- 7. Kann die Breite einer UITableViewCell angepasst werden?
- 8. Wie kann ich UIAlertAction in UIAlertController für iOS8 anpassen?
- 9. Wie kann ich den Cookie-Namen für die Formularauthentifizierung anpassen?
- 10. Wie kann ich das Tag-Video für mobile Geräte anpassen?
- 11. anpassen uipickerview innerhalb von uitableviewcell
- 12. Wie kann man das Aussehen einer SeekBar in Android anpassen?
- 13. Wie kann ich die JSON-Serialisierung anpassen?
- 14. Was ist die Standardgröße für die UIImage in einer UITableViewCell?
- 15. Wie kann ich das Bild in einer HTML5-Formularüberprüfungsnachricht ändern?
- 16. Wie kann ich UIDatePicker für Hijri anpassen
- 17. CakePHP: Wie kann ich die Etiketten für mehrere Kontrollkästchen anpassen
- 18. In Swift, wie das Menü in einer Tab-Leiste anpassen?
- 19. Wie kann ich die Seite "Übersicht" in JavaDoc anpassen?
- 20. Anpassen der benutzerdefinierten UITableViewCell in Monotouch
- 21. Das Bild von UItableviewcell kann nicht geändert werden Button
- 22. Wie kann ich Bootstrap in einer Meteor-Anwendung anpassen?
- 23. Wie kann ich den Anmeldebildschirm für Windows Vista & 7 anpassen?
- 24. Wie kann ich die Mustergröße in clojure anpassen?
- 25. Wie kann ich die Titelleiste einer Qt-App über das Qt-Stylesheet anpassen?
- 26. Wie kann ich die Kartenansicht mit Autoresizing in iOS anpassen?
- 27. Wie kann ich nur das Etikett auf der uitableviewcell aktualisieren?
- 28. Wie kann ich den Tooltip in d3plus.full.js für Ringe anpassen?
- 29. Wie ändere ich das Bild einer PictureBox?
- 30. Kann ich das Zugriffsprotokoll in meiner GAE-App anpassen?
Wenn ich das tue, merke ich, dass die UITableViewDelegate Methode - [Tableview: accessoryButtonTappedForRowWithIndexPath:] nicht mehr aufgerufen wird. Ist das erwartetes Verhalten? Gibt es eine Möglichkeit, diese Methode aufrechtzuerhalten? –
Es gibt einige weitere Erklärungen unter http://stackoverflow.com/questions/869421/using-a-custom-image-for-a-uitableviewcells-accessoryview-and-having-it-respid – jarnoan
ist es möglich, es mit UIAppearance zu tun Proxy auf UITableViewCell? – Claus