Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在OS 3.0的UITableViewCell中更改左UIImageView的位置_Iphone_Cocoa Touch - Fatal编程技术网

Iphone 在OS 3.0的UITableViewCell中更改左UIImageView的位置

Iphone 在OS 3.0的UITableViewCell中更改左UIImageView的位置,iphone,cocoa-touch,Iphone,Cocoa Touch,我有一个UITableView,其标准UITableViewCells包含左侧的图像。我正在设置单元格的图像,如下所示: UIImage *leftIcon = [UIImage imageNamed:@"myImage.png"]; cell.imageView.image = leftIcon; 这个很好用。不过,根据应用程序运行的iPhone操作系统的不同,外观也会有所不同。在2.2.1之前,图像位于距离左边框约11像素的位置。在3.0中,图像直接定位在左边框上,没有任何空间 我的目标是

我有一个UITableView,其标准UITableViewCells包含左侧的图像。我正在设置单元格的图像,如下所示:

UIImage *leftIcon = [UIImage imageNamed:@"myImage.png"];
cell.imageView.image = leftIcon;
这个很好用。不过,根据应用程序运行的iPhone操作系统的不同,外观也会有所不同。在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.)使用左侧的自定义UIImageView实现自定义UITableViewCell

2.)使用Photoshop将11px透明边框添加到myImage.png:)


有什么建议吗?

在我看来,要解决iPhone世界中的此类问题,最简单的方法就是创建自定义类。另外,考虑为像

之类的类创建一些函数。
-(void)redrawAtDefaultCoordinates;
-(void)redrawAtCoordinates(NSInteger x, NSInteger y);
对于每个自定义类,您可以简单地调整它们的显示位置


至于你的实际问题,我想说的是,试着找出单元格使用的矩形,然后找出你需要的相对几何体。iPhone在猜测你想把东西放在什么地方方面做得很好,但如果它猜错了,你总是希望至少有东西可以参考。

在我看来,在iPhone世界里,解决类似问题最简单的方法就是创建自定义类。另外,考虑为像

之类的类创建一些函数。
-(void)redrawAtDefaultCoordinates;
-(void)redrawAtCoordinates(NSInteger x, NSInteger y);
对于每个自定义类,您可以简单地调整它们的显示位置


至于你的实际问题,我想说的是,试着找出单元格使用的矩形,然后找出你需要的相对几何体。iPhone在猜测你想把东西放在哪里方面做得很好,但如果它猜错了,你总是希望至少有东西可以参考。

这有点像黑客,但你可以从
UITableViewDelegate
缩进你的单元格

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

这会将
UITableViewCell
UIImageView
推到大约10个点。

这有点麻烦,但您可以从
UITableViewDelegate
缩进单元格

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 1;
}
这将产生将
UITableViewCell
UIImageView
推10个点的效果