3

我尝试在 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;
}

目前的结果:

在此处输入图像描述

4

3 回答 3

7

使用 UIImageView 而不是简单的 UIView 作为分隔符。设置 Image 值(这很重要!)而不是 backgroundColor 值并使用比例拉伸图像以进行填充。

于 2012-09-05T16:24:10.607 回答
0

也许你的 costumSelect 在 Cell 的 contentView 下。我之前实现过这样的行为,但是我将 UITableViewCell 子类化了。尝试在您的自定义单元格上覆盖 setSelected 方法。

于 2012-08-15T14:27:58.163 回答
-1

使用 tableView.separatorColor(和 tableView.separatorStyle)设置对比分隔符颜色。如果您在单元格中绘制自己的分隔符,请设置 separatorStyle=UITableViewCellSeparatorStyleNone。此外,将 selectionStyle 设置为 UITableViewCellSelectionStyleNone 可能会对您有所帮助

于 2012-08-15T14:37:34.023 回答