正如标题所说,我遇到了一排无法摆脱的透明像素问题 我附上一张图片,因为它值1000个字。
http://oi54.tinypic.com/288ahy.jpg
部分页脚没有问题(我也在使用自定义视图)。 我已经检查并仔细检查了我返回的部分高度的正确尺寸。
有什么想法吗?
修改
我添加了一个测试项目,这样你就可以玩了。紫色代表背景颜色。白色矩形是页眉/页脚,浅灰色是一些虚拟单元格。该问题在项目中清晰可见。
TransparentRowBug XCode project
您还会看到我使用了很多清晰的颜色。不幸的是,改变颜色以隐藏问题对我来说不是一个可行的解决方案。
随意尝试(或更多)!
非常感谢!
EDIT2:
经过进一步调查,我得出结论,像素线来自tableview分隔符。在测试项目中,我将separatorColor设置为clearColor。如果我将其更改为另一种颜色,我将获得新颜色中的那一行像素。即使我将分隔符样式设置为none,它似乎也对分组表没有影响。
答案 0 :(得分:11)
正如我在上面的评论中所说,只是在heightForHeader方法中返回一个较小的高度是行不通的。要使其工作,您需要获取所需的标题视图,将其插入具有完全相同大小的虚拟/容器视图中,然后将此容器作为标题提供给tableView。
然后,当你为标题返回一个较小的大小时,它神奇地(对我来说真的很神奇)设法重叠那个烦人的像素行。
顺便说一句,我得出结论,像素行是由细胞分离线引起的。
如果有人感兴趣,我可以再次上传工作测试项目。
答案 1 :(得分:0)
我不确定这是不是你问的问题,但我两天前想到你可以减少tableView中各部分之间的默认空间......
让heightForHeader
返回负值!很脏,但......很有效。
我希望有帮助...
答案 2 :(得分:0)
我也遇到过这个问题。我有一个UITableView与分组部分。在第一个部分标题和第一个单元格之间,有一个1点(2个视网膜像素)间隙,背景渗透。
如果背景单元格颜色是均匀的,那么您可以指定UITableView的backgroundColor来隐藏这个间隙。
在我的例子中,backgroundColor / backgroundView用于其他单元格上的非滚动图案背景。 mluisbrown提出的解决方案非常有效。我想再次强调这个解决方案:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView* topTabView = /* initialized elsewhere */;
CGRect sectionHeaderSize = CGRectMake(0, 0, 320, 46);
UIView* wrapperView = [[UIView alloc] initWithFrame:sectionHeaderSize];
topTabView.frame = sectionHeaderSize;
[wrapperView addSubview:topTabView];
return wrapperView;
}
答案 3 :(得分:0)
在标题视图和第一行之间添加一个分隔符: - 为了查看委托方法中的标题,添加一个子视图self.separator // @ property(非原子,强)UIImageView *分隔符;
- (CGFloat)tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section {
return 41;
}
- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section {
self.headerView = [[UIView alloc] init];
self.headerView.backgroundColor = [UIUtils colorForRGBColor:TIMESHEET_HEADERVIEW_COLOR];
self.separator = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"seperator.png"]];
self.separator.frame = CGRectMake(0,40,self.view.frame.size.width,1);
[self.headerView addSubview:self.separator];
return self.headerView;
}
答案 4 :(得分:0)
Grouped UITableView将标题,单元格和页脚作为单个实体。所以白色透明视图是页脚视图,可以通过降低页脚高度来处理,如屏幕截图所示。我希望它有效 祝你好运:)