0

UITableViewCell に中央揃えの 200x150 画像を表示する必要があります。画像を標準のセルタイプに追加できました(収まるように縮小しました-うまくいきませんでした)。次に、画像の境界とフレームを設定して再描画を試みました(これにより、画像と他の行が重なりました)。

UITableViewCell から継承するカスタム クラスがあります。

    #import "WCPictureViewCell.h"

    @implementation WCPictureViewCell

    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
        }
        return self;
    }

    - (void)layoutSubviews {
        [super layoutSubviews];
        self.frame = CGRectMake(5,5,210,160);
        self.bounds = CGRectMake(5,5,210,160);
        self.imageView.frame = CGRectMake(0,0,200,150);
        self.imageView.bounds = CGRectMake(0,0,200,150);
    }

    - (void)setSelected:(BOOL)selected animated:(BOOL)animated
    {
        [super setSelected:selected animated:animated];

        // Configure the view for the selected state
    }

@end

このコードは、テーブルの残りの部分との画像のオーバーラップを生成します。

画像オーバーラップ テーブル テキスト

これが私の tableView:cellForRowAtIndexPath: コントローラーのメソッドです:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell;
    if(cellPropertyMap>0) {        
        static NSString *CellIdentifier = @"DetailCell";
        cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        if(cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        }

        // Configure the cell...
        [[cell textLabel] setText: (NSString *)[[self displayLabels]objectAtIndex:cellPropertyMap]];
        [[cell detailTextLabel] setText: (NSString *)[[self displayData]objectAtIndex:cellPropertyMap++]];
    } else {
        static NSString *CellIdentifier = @"PictureCell";
        cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        //if(cell == nil) {

        //}

        // Configure the cell...
        NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: [cat friendlyURLPath]]];
        cell.imageView.image = [UIImage imageWithData: imageData];


        cellPropertyMap++;
        return cell;
    }
    return cell;
}

表のセルが互いのサイズを尊重し、重ならないようにするにはどうすればよいですか? 画像を中央に配置するにはどうすればよいですか?

4

1 に答える 1