我有一个简单样式的表格,其中包含多个部分。
症状:当表格首次加载时,每个单元格都像往常一样具有其分隔符,除了每个部分中的最后一个单元格(即在标题“之前”的位置)。但是,在滚动时,某些单元格上会出现分隔符。此外,如果选择一个单元格,然后取消选择,则分隔符将出现。
打印查看层次结构显示,干净的启动状态下,每个部分中的最后一个单元格的分隔符视图是隐藏的,因此我会认为这是正常行为:
<_UITableViewCellSeparatorView: 0x145b1990;
frame = (0 47.5; 320 0.5);
hidden = YES;
layer = <CALayer: 0x145b2950>>
有时滚动并选择单元格,就会移除这个隐藏属性,分隔线就会出现。
我最初的假设是我做错了什么,但这甚至在最基本的hello world应用程序中也会发生:
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableView reloadData];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 4;
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
return 2;
}
- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section {
return @"test";
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *reuseIdentifier = @"TestCell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:reuseIdentifier];
return cell;
}
屏幕截图(左边:开始后;右边:选择单元格后):
这是苹果方面的错误还是我漏掉了什么?例如,在iOS的联系人应用程序中,分隔符从不隐藏在部分标题上方...
**更新:**
在原生音乐应用中能够复现此问题:例如“歌曲”标签页中没有分隔符。选择任何一节的第一个单元格,然后取消选择,分隔符就出现了。
额外信息:iOS 7.1