0

我在我的子类中使用以下代码为我UITableViewCell的未选择单元格设置阴影UITableView

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
  [super setHighlighted:highlighted animated:animated];
  [self applyLabelDropShadow:!highlighted];
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
  [super setSelected:selected animated:animated];
  [self applyLabelDropShadow:!selected];
}

- (void)applyLabelDropShadow:(BOOL)applyDropShadow
{
  self.textLabel.shadowColor = applyDropShadow ? [UIColor whiteColor] : nil;
  self.textLabel.shadowOffset = CGSizeMake(0, 1);
  self.detailTextLabel.shadowColor = applyDropShadow ? [UIColor whiteColor] : nil;
  self.detailTextLabel.shadowOffset = CGSizeMake(0, 1);
}

这段代码来自 Mike Stead 的另一个StackOverflow问题它运行良好。

但是,当该行从选中移动到取消选中时,您会看到detailTextLabel非常轻微的向下移动,这是我不希望发生的。对于单元格不会发生这种情况textLabel

任何想法为什么?

4

1 回答 1

2

尝试使用[UIColor clearColor]非阴影而不是nil

- (void)applyLabelDropShadow:(BOOL)applyDropShadow
{
  self.textLabel.shadowColor = applyDropShadow ? [UIColor whiteColor] : [UIColor clearColor];
  self.textLabel.shadowOffset = CGSizeMake(0, 1);
  self.detailTextLabel.shadowColor = applyDropShadow ? [UIColor whiteColor] : [UIColor clearColor];
  self.detailTextLabel.shadowOffset = CGSizeMake(0,1);
}
于 2013-03-02T16:25:30.533 回答