我正在尝试在tableview中设置insets,以便每个单元格不会相互粘连。
为此,我已将以下方法添加到tableView:willDisplayCell:forRowAtIndexPath
:
if([tableView respondsToSelector:@selector(setSeparatorInset:)]){
[tableView setSeparatorInset:UIEdgeInsetsMake(10, 15, 10, 15)];
}
我基本上希望在下一个单元格之前,在单元格的顶部和底部有一个 10pt 空间。此代码部分有效,因为左侧和右侧有一个可见的 15pt 插入。但是,顶部和底部仍然连接。
谢谢!
〜Carpetfizz
答案 0 :(得分:4)
忽略顶部和底部值UITableViewCell Class Reference (separatorInset):
[...]只考虑左右插入值;顶部和底部插入值将被忽略。[...]
我建议通过增加单元格的高度来做间距,并使用适当的填充将内容放到顶部和底部边缘。
答案 1 :(得分:1)
您必须使用透明单元格。 例如,代码的一小部分。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return yourCount*2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"elementCell";
static NSString *TransparentCellIdentifier = @"transparentCell";
NSString *neededIdentifier;
if(indexPath.row % 2 != 0)
neededIdentifier = TransparentCellIdentifier;
else
neededIdentifier = CellIdentifier;
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:neededIdentifier];
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:neededIdentifier];
}
if([neededIdentifier isEqualToString:TransparentCellIdentifier]) {
[cell setBackgroundColor:[UIColor clearColor]];
cell.userInteractionEnabled = NO;
}
else {
[cell setBackgroundColor:[UIColor redColor]];
cell.userInteractionEnabled = YES;
}
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.row % 2 == 0)
return 70.0f;
else
return 10.0f;
}
是的,这有点奇怪,但它确实有效。