9

UITableView セル imageView のマージンまたはパディングを設定したいのですが、どうすればよいですか? heightForRowAtIndexPath行の高さしか設定できません。そして、それを増やすと、セル内の画像が拡大されます。

ここに私の cellForRow メソッドがあります

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
        cell.textLabel.numberOfLines = 1;
        cell.textLabel.font = [UIFont systemFontOfSize:kSystemFontSize];
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.textLabel.textColor = [UIColor whiteColor];
    }
    cell.textLabel.text = [_dataArray objectAtIndex:indexPath.row];
    cell.imageView.image = [UIImage imageNamed:[_imageArray objectAtIndex:indexPath.row]];
    cell.backgroundColor = [UIColor clearColor];

    return cell;
}

現在、私はそれを行う方法を1つだけ知っています.Photoshopまたは同様のプログラムを使用して、同時に画像の画像コンテンツを縮小します。しかし、そのような方法は時間がかかるので、もっと簡単な方法があるはずです。

4

4 に答える 4

17

サブクラス化なし:

cell.imageView.transform = CGAffineTransformScale(CGAffineTransformIdentity, .5, .5);

ケースに適した比率で「.5」を変更します

于 2015-10-28T10:28:46.613 に答える
9

ここでの最善の解決策は、独自のセルを作成し、その中に画像とラベルを追加contentViewして、必要に応じて微調整することです。

ただし、別の方法もあります。ここでも、サブクラスを作成してセレクターUITableViewCellをオーバーライドする必要があります。layoutSubviews

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.imageView.frame = CGRectMake(10, 10, 50, 50);
    self.imageView.contentMode = UIViewContentModeCenter;
}
于 2013-04-10T11:27:15.817 に答える