我有一个带有标准UITableViewCells的UITableView,它包含左侧的图像。我按如下方式设置单元格的图像:
UIImage *leftIcon = [UIImage imageNamed:@"myImage.png"];
cell.imageView.image = leftIcon;
这很好用。但是,根据应用程序运行的iPhone OS,外观会有所不同。直到2.2.1,图像位于距左边界约11个像素处。在3.0中,图像直接定位在左边框上,没有任何空间。
我的目标是将图像定位在距离单元格左侧大约11px的位置。我尝试了以下但没有取得任何成功:
UIImage *leftIcon = [UIImage imageNamed:@"myImage.png"];
//trying to change x coordinate of the frame of the UIImageView
CGRect tmpRect = cell.imageView.frame;
tmpRect.origin.x = 10;
cell.imageView.frame = tmpRect;
cell.imageView.image = leftIcon;
我可以想到两种可能的解决方案:
1。)在左侧使用自定义UIImageView实现我的自定义UITableViewCell。
2。)使用Photoshop为myImage.png添加一个11px透明边框:)
有什么建议吗?
答案 0 :(得分:1)
这有点像黑客,但你可以从UITableViewDelegate
缩进你的单元格。
- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
return 1;
}
这样可以将UITableViewCell
的{{1}}推过约10分。
答案 1 :(得分:0)
在我看来,在iPhone世界中解决这类问题最简单的方法就是创建自定义类。另外,考虑为所述类创建一些函数,如
-(void)redrawAtDefaultCoordinates;
-(void)redrawAtCoordinates(NSInteger x, NSInteger y);
为每个自定义类,以便您可以简单地调整它们的显示位置。
至于你的实际问题,我会说尝试进入单元格使用的矩形,然后找出你需要的相对几何形状。 iPhone对于你想放置东西的位置所做的猜测做得相当不错,但如果猜错了,你总是希望至少有一些东西要去。