1

我为原生 iPhone 应用程序设计了一个自定义的 tableview(基于 jQuery Mobile 的设计)。tableview 被分割成几个图像(标题、行等),可用作UITableView. UIImageView我在一个成为backgroundView我自定义的图像中使用这个图像UITableViewCell。不知何故,底部边距出现在某些设备上。

为了方便起见,我不使用 iOS 的 tableview 标题。表格视图中的所有内容都是表格视图单元格,包括(假)标题。每个单元格的高度与背景图像的高度相匹配。所有视图都以编程方式设置,因此 XIB 文件中没有可能导致问题的隐藏内容。

我使用UITableViewwith 风格UITableViewStylePlain。为了防止显示常规分隔符,我在 tableview 控制器的viewDidLoad方法中使用此代码:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

init我的自定义(子类)tableview 单元格的方法中,我像这样应用背景图像:

UIImage *backgroundImage = [UIImage imageNamed:@"Word.png"];
self.backgroundView = [[UIImageView alloc] initWithImage:backgroundImage];

这在 iOS 模拟器(iOS 5.0 和 5.1)和我的 iPhone 和 iPad(iOS 6)上完美运行。但是,在我的客户端的 iPhone (iOS 5.1.1) 上,背景图像比 tableview 单元格低 2px。因此,可以看到一条水平线。

问题(拇指)

点击查看完整图片

为了使调试更容易,我在这样的方法中为单元格及其背景视图添加了背景颜色layoutSubviews

self.backgroundView.backgroundColor = [UIColor orangeColor];
self.backgroundColor = [UIColor yellowColor];

对于常规单元格,我使用橙色和黄色,对于标题单元格,我使用蓝色和绿色。如果您查看图像,您会发现背景视图的高度等于单元格的高度。这通过记录两个视图的frame和来确认。bounds

我不知道这里出了什么问题。所有 UITableViewCells 的大小与背景图像完全相同。@2x所有图像都具有正好两倍大的Retina变体。

希望有人知道这里出了什么问题。如果你需要我尝试一些东西,请发表评论,我会的。此外,我将尝试查找安装了 iOS 5.1.1 的其他一些设备,看看那里会发生什么。

4

1 回答 1

1

谷歌快速搜索:

UIImageView 一像素

返回先前的 Stackoverflow 讨论,该讨论建议

在构建设置中将“压缩 PNG 文件”设置为“否”

可能会解决这个确切的问题:iOS 5.1 with Xcode 4.3.1: [UIColor colorWithPatternImage:] 奇怪的行为仅在设备上

于 2012-08-07T03:27:34.237 回答