Frage

Ich versuche, eine UITableViewCell einzurichten, die ein Bild in der oberen rechten Ecke haben.

Ich habe es für Portrait-Modus arbeiten, aber wenn ich auf Querformat drehen, verschwindet das Bild.

Hier ist der Code:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

        UIImage *cornerImage = [UIImage imageNamed:@"star_corner.png"];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(cell.contentView.bounds.size.width - cornerImage.size.width,
                                                                               0,
                                                                               cornerImage.size.width,
                                                                               cornerImage.size.height)];
        imageView.tag = kCornerImageViewTag;
        [cell.contentView addSubview:imageView];
        [imageView release];
    }

    UIImageView *theView = (UIImageView *)[cell.contentView viewWithTag:kCornerImageViewTag];
    [theView setImage: [UIImage imageNamed:@"star_corner.png"]];

    cell.textLabel.text = @"the text label";
    return cell;
}

Interessanterweise, wenn ich die „cell.textLabel.text =“ Zeile aus kommentieren, macht das Bild zeigt in der Landschaft ... obwohl es nicht ganz nach rechts verschiebt über.

Wenn es etwas anderes falsch ich hier tue, lass es mich wissen.

Vielen Dank im Voraus für jede Hilfe.

War es hilfreich?

Lösung

dachte ich diese aus. Die Lösung wurde zwei der UIImageView zu schaffen ... eine für den Stern Ecke Bild, und eine für die Zelle Hintergrundbild.

ich das Stern Ecke UIImageView als Subview des Hintergrundbild UIImageView hinzugefügt, dann zugewiesen, das zu cell.backgroundView.

Die Stern UIImageView positioniert sich richtig durch Verwendung von:

starImageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;

Und da das Ganze mit dem cell.backgroundView zugeordnet ist (statt cell.contentView), ist es nicht von der Zelle Schaltfläche Löschen oder Neuordnen Kontrollen betroffen.

Andere Tipps

Ihre UIViewController didRotateFromInterfaceOrientation reagieren soll.

Bei dieser Methode Sie durch Zellen laufen kann, erhält die UIImageView mit [Zelle viewWithTag] und die Rahmen Eigenschaft ändern nach den neuen Zellabmessungen (cell.contentView.bounds).

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top