我想为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;
}
目前我只知道一种方法如何做到这一点 - 在同时停留的同时使用photoshop或类似程序缩小图像的图像内容。但是这种方法需要花费很多时间,我想应该有更简单的方法来做到这一点。
答案 0 :(得分:17)
没有子类化:
cell.imageView.transform = CGAffineTransformScale(CGAffineTransformIdentity, .5, .5);
更改' .5'适合您案件的比例
答案 1 :(得分:9)
这里最好的解决方案是创建自己的单元格,在contentView
内添加图片,标签,然后根据需要进行调整。
但也有另一种方法,你需要再次从UITableViewCell
创建一个子类并覆盖layoutSubviews
选择器:
- (void)layoutSubviews
{
[super layoutSubviews];
self.imageView.frame = CGRectMake(10, 10, 50, 50);
self.imageView.contentMode = UIViewContentModeCenter;
}
答案 2 :(得分:3)
适用于iOS 7:
- (void)layoutSubviews
{
[super layoutSubviews];
CGRect imageViewFrame = self.imageView.frame;
imageViewFrame.origin.x = 10;
imageViewFrame.origin.y += 5;
imageViewFrame.size.height -= 10;
imageViewFrame.size.width -= 10;
self.imageView.frame = imageViewFrame;
}
答案 3 :(得分:0)
为swift3更新了
cell?.imageView?.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)