Frage

Ich möchte eine benutzerdefinierte Version des Standard-Offenlegung Zubehör Bild verwenden in meinem UITableView. Wie kann ich das machen? Ich hoffe, dass Sub-Klassierung UITableViewCell für etwas, das nicht notwendig ist, diese einfach.

War es hilfreich?

Lösung

Sie müssen eine benutzerdefinierte Ansicht erstellen und an die accessoryView Eigenschaft des UITableViewCell Objekt zuweisen. So etwas wie:

myCell.accessoryView = [[ UIImageView alloc ] 
                       initWithImage:[UIImage imageNamed:@"Something" ]];

Andere Tipps

- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UIImage *indicatorImage = [UIImage imageNamed:@"Arrow.png"];
    cell.accessoryView =[[[UIImageView alloc]  initWithImage:indicatorImage] autorelease];


    return cell;
}

Nun, ich tue dies mit Hilfe Code oben angegebenen

Ich lief in das gleiche Problem wie Greg - das Zubehör Ansicht verfolgt nicht (wenn Sie eine UIImageView verwenden)

Ich löste es wie folgt aus:

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 ] ;

Es gibt eine schönes Beispiel von Apple das zeigt, wie UIControl verwenden, um diese Art von accessoryView Anpassung zu erfüllen.

Übergeordnete - (void)drawRect:(CGRect)rect in UIControl ist nicht die einfachste Art und Weise, sondern gibt Ihnen viel Flexibilität Stil schönes Accessoire Aussicht.

eingeben Bild Beschreibung hier

Ich würde es tun, 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, versuchen Sie dies, bevor Sie unten Stimme! Denn im Moment ist es verfügt über 2 upvotes und 2 downvotes!

habe ich versucht, den obigen 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ör Ansicht gab.

[cell setAccessoryView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrowBtn"]]];

Hope jemand findet dies nützlich.

Hinweis: keine benutzerdefinierte Zelle gesetzt markieren: 0 gewonnen. Der Tag wird für die textlabel Ansicht vorbehalten. Wenn Sie Tags in Xcode Storyboard gesetzt, Sie müssen eingestellt Tags für benutzerdefinierte Ansichten / Etiketten auf 1 oder höher.

Hinweis Apples 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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top