1

グループ化されたセルを含むテーブル ビューがあります。このセルの 1 つに画像が含まれるようにします。画像を挿入してセルに収まるようにするコードは次のとおりです。

             logoCell = [tableView dequeueReusableCellWithIdentifier:LogoCellIdentifier];
             if (logoCell == nil) {
                 logoCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LogoCellIdentifier];
             }

             UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)];
             [imgView setImage:image];

             [logoCell.contentView addSubview:imgView];

しかし、tableViewが表示されているとき、私の画像はセルの幅よりも大きくなっています。セルに合わせるにはどうすればよいですか?

4

3 に答える 3

2

画像を tableViewCell の背景色として追加すると、角が丸くなります。それ以外の場合、グループ化されたセルは画像をマスクしません。UIImageView の contentMode を設定して、すべてがセルに収まるようにする必要もあります。

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)];
imgView.contentMode = UIViewContentModeScaleAspectFit;
cell.backgroundColor = [UIColor colorWithPatternImage:imgView.image];
于 2013-05-17T20:43:13.323 に答える
1

画像ビューを s に追加する方法は、画像ビューUITableViewCellで何をしようとしているのかによって異なります。画像をセルのコンテンツの一部にする場合は、セルの作成時に追加します。

logoCell = [tableView dequeueReusableCellWithIdentifier:LogoCellIdentifier];
if (logoCell == nil) {
    logoCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LogoCellIdentifier];

    // ADD IMAGEVIEW ONLY WHEN CREATING CELL
    UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)];
    [logoCell.contentView addSubview:imgView];

    // DONT ALLOW IMAGE OVERFLOW
    imgView.clipsToBounds = YES;
}

// SET YOUR IMAGE EVERY TIME
[imgView setImage:image];

背景ビューとして設定しようとしている場合は、セルのbackgroundViewプロパティを で設定する必要がありますtableView:willDisplayCell:forRowAtIndexPath。画像ビューがセルと同じサイズであることを確認してください。

UIImageView *imgView = [[UIImageView alloc] initWithFrame: cell.bounds];
imgView.image = image;
cell.backgroundView = imgView;
于 2013-05-17T21:02:19.010 に答える