UILabel阴影来自自定义单元格选择的颜色

Iñi*_*tia 9 iphone uitableview uilabel

我正在加载一个自定义的nib文件来自定义UITableView的单元格.自定义笔尖有一个UILabel,可以通过标记从主视图中引用.我想知道当单元格选择为不同的颜色时是否可以更改UILabel的阴影颜色,因此它看起来不像截图.

截图

Jas*_*son 16

我更喜欢在TableCell代码中更改阴影颜色以不污染委托.您可以覆盖此方法来处理它:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animate
{
    UIColor * newShadow = highlighted ? [UIColor clearColor] : [UIColor whiteColor];

    nameLabel.shadowColor = newShadow;

    [super setHighlighted:highlighted animated:animate];
}
Run Code Online (Sandbox Code Playgroud)


ken*_*ytm 11

您可以-tableView:willSelectRowAtIndexPath:在委托中更改标签的阴影颜色.例如:

-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.textLabel.shadowColor = [UIColor greenColor];
    return indexPath;
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.textLabel.shadowColor = [UIColor redColor];
}
Run Code Online (Sandbox Code Playgroud)

  • 此答案不适用于突出显示的单元格状态(即,如果用户按下单元格但未释放).不幸的是杰森的回答是我见过的最好的处理这个案子的答案.不幸的是它涉及子类化.您可能还需要覆盖setSelected: (3认同)