2009-07-22 50 views
1

我有一个包含左侧图像的标准UITableViewCells的UITableView。我设置单元格的图像如下:在OS 3.0中更改UITableViewCell中左侧UIImageView的位置

UIImage *leftIcon = [UIImage imageNamed:@"myImage.png"]; 
cell.imageView.image = leftIcon; 

这工作正常。但是,外观有所不同,具体取决于App运行的iPhone OS。在2.2.1之前,图像距离左边界约11个像素。在3.0中,图像直接位于左边界上,没有任何空间。

我的目标是在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)执行我的自定义的UITableViewCell在左侧的自定义的UIImageView。

2)添加11像素透明边框使用Photoshop :)

任何建议myImage.png?

回答

0

在我看来,你可以做的最简单的事情来解决iPhone世界中的这样的问题是创建自定义类。另外,还要考虑每个自定义类创建一些函数表示类,如

-(void)redrawAtDefaultCoordinates; 
-(void)redrawAtCoordinates(NSInteger x, NSInteger y); 

,这样就可以简单地进行调整,它们显示在哪里。

至于你的实际问题,我会说试图找到单元格使用的矩形,然后找出你需要的相对几何。 iPhone在你想要放置物品的位置猜测时做得相当不错,但如果猜测错误,你总是至少需要一些东西。

1

这有点破解,但你可以从你的UITableViewDelegate缩进你的单元格。

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return 1; 
} 

这将对推动了效果的UITableViewCell“约10点S. UIImageView

相关问题