Iphone 在OS 3.0的UITableViewCell中更改左UIImageView的位置
我有一个UITableView,其标准UITableViewCells包含左侧的图像。我正在设置单元格的图像,如下所示: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中,图像直接定位在左边框上,没有任何空间 我的目标是
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个点的效果