我尝试在我的UITableView中实现我自己的简单单元格样式,我遇到了分隔符的问题。在正常视图下工作得很好,但是当我选择一个单元格时,它会消失。我尝试添加到我的customSelect视图分隔符,但后来我无法在任何地方看到分隔符。如何在选定的单元格中添加分隔符?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyCellIdentifier = @"MyCellIdentifier";
UITableViewCell *cell = [wallMenuTableView dequeueReusableCellWithIdentifier:MyCellIdentifier];
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyCellIdentifier];
MenuItemModel *mItem = [menu.menuPositions objectAtIndex:indexPath.row];
cell.textLabel.text = mItem.displayName;
cell.textLabel.textColor = [UIColor colorWithRed:0.70 green:0.70 blue:0.70 alpha:1.0];
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.font = [UIFont fontWithName:@"ArialMT" size:16];
cell.textLabel.shadowColor = [UIColor blackColor];
cell.textLabel.shadowOffset = CGSizeMake(0.0, 1.0);
customSeparator = [[UIView alloc] initWithFrame:CGRectMake(0, (cell.frame.origin.y), 320, 2)];
customSeparator.backgroundColor=[UIColor blackColor];
[customSeparator.layer setShadowOffset:CGSizeMake(0.0, 0.8)];
[customSeparator.layer setShadowOpacity:0.8];
[customSeparator.layer setShadowRadius:0.8];
[customSeparator.layer setShadowColor:[UIColor grayColor].CGColor];
[cell.contentView addSubview:customSeparator];
customSelect = [[UIView alloc] initWithFrame:CGRectMake(0, (cell.frame.origin.y+2), cell.frame.size.width, cell.frame.size.height)];
//[customSelect addSubview:customSeparator];
customSelect.backgroundColor = [UIColor clearColor];
[cell setSelectedBackgroundView:customSelect];
}
return cell;
}
目前的结果:
答案 0 :(得分:7)
为分隔符使用UIImageView而不是简单的UIView。设置图像值(这很重要!)而不是backgroundColor值,并使用缩放来拉伸图像以进行填充。
答案 1 :(得分:0)
也许您的costumSelect位于Cell的contentView下。之前我实现过这样的行为,但是我将UITableViewCell子类化了。尝试覆盖自定义单元格上的setSelected方法。
答案 2 :(得分:0)
我还没有答案,我想弄清楚这一点。同时发现这个链接,看看它是否有助于我们找到解决方案: Is there any way to modify a UITableView's separator cell?
答案 3 :(得分:-1)
使用tableView.separatorColor(和tableView.separatorStyle)设置对比分隔符颜色。如果要在单元格中绘制自己的分隔符,请设置separatorStyle = UITableViewCellSeparatorStyleNone。此外,将selectionStyle设置为UITableViewCellSelectionStyleNone可能会帮助您