我为原生iPhone应用程序设计了一个自定义的tableview(基于jQuery Mobile的设计)。 tableview被切成若干图像(标题,行等),可用作UITableView
中的背景图像。我在UIImageView
中使用此图片,该图片成为我的自定义backgroundView
的{{1}}。不知何故,某些设备上会出现下边距。
为了方便起见,我不使用iOS的tableview标题。 tableview中的所有内容都是tableview单元格,包括(假)标题。每个单元格的高度与背景图像的高度相匹配。所有视图都是以编程方式设置的,因此XIB文件中没有可能导致问题的隐藏内容。
我使用样式为UITableViewCell
的{{1}}。为了防止显示常规分隔符,我在tableview控制器的UITableView
方法中使用此代码:
UITableViewStylePlain
在我的自定义(子类)tableview单元格的viewDidLoad
方法中,我应用这样的背景图像:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
这适用于iOS模拟器(iOS 5.0和5.1)以及我的iPhone和iPad(iOS 6)。但是,在我的客户端的iPhone(iOS 5.1.1)上,背景图像比tableview单元高2px。因此,可以看到水平线。
点击查看完整图片
为了简化调试,我在init
方法中为单元格及其背景视图添加了背景颜色,如下所示:
UIImage *backgroundImage = [UIImage imageNamed:@"Word.png"];
self.backgroundView = [[UIImageView alloc] initWithImage:backgroundImage];
对于常规细胞,我使用橙色和黄色,而对于标题细胞,我使用蓝色和绿色。如果查看图像,您会看到背景视图的高度等于单元格的高度。通过记录两个视图的layoutSubviews
和self.backgroundView.backgroundColor = [UIColor orangeColor];
self.backgroundColor = [UIColor yellowColor];
来确认这一点。
我不知道这里出了什么问题。所有UITableViewCell都与背景图像完全相同。所有图像都具有Retina frame
变体,其大小正好是其两倍。
希望有人知道这里出了什么问题。如果您需要我尝试一下,请发表评论然后我会。此外,我将尝试找到安装了iOS 5.1.1的其他设备,以了解其中发生的情况。
答案 0 :(得分:1)
快速谷歌搜索:
UIImageView一个像素
返回之前建议的Stackoverflow讨论
在构建设置中将“压缩PNG文件”设置为“否”
可能会解决这个问题:iOS 5.1 with Xcode 4.3.1: [UIColor colorWithPatternImage:] strange behavior only on device