我创建了一个自定义TableCell的UITableView,通常遵循本教程;
http://www.theappcodeblog.com/?p=353
我根据自己的需求定制了它,看起来很棒。但是,当我选择一行时,它会通过将整个事物更改为蓝色来突出显示该行。这个亮点涵盖整个单元格并覆盖内容,有效地制作一个看起来很讨厌的大蓝盒子。我已经尝试了
的备用突出显示选项cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.selectionStyle = UITableViewCellSelectionStyleGray;
显然,如果选择为灰色,则会出现相同的行为但灰色丑陋的盒子。 “无”是最好的选择,但不能为我的用户提供良好的体验,因为我想表明他们已经选择了这一行。
任何人都可以建议一种方法来显示该行是高亮的,但仍然显示下面的文字?半透明度?
由于
答案 0 :(得分:11)
也许是因为您的示例代码正在设置:
artistLabel.highlightedTextColor = [UIColor clearColor];
。
当它突出显示时,将导致artistLabel的文字颜色变得透明。
原因是您可以为标签的highlightTextColor属性设置自己的颜色,例如:
[UIColor whiteColor]
答案 1 :(得分:8)
UITableView Cell选择了颜色
<强>享受... 强>
// Image
UIImage *selectionBackground = [UIImage imageNamed:@"g7.png"];
UIImageView *bgview=[[UIImageView alloc] initWithImage:selectionBackground];
cell.selectedBackgroundView=bgview;
[bgview release];
或
// Color
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor brownColor]];
[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];
答案 2 :(得分:4)
你可以使用自己的自定义视图进行选择
这里我有绿色视图。就像你可以改变你想要的任何定制。
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame: CGRectZero
reuseIdentifier: CellIdentifier] autorelease];
UIView *selectionView = [[UIView alloc]initWithFrame:cell.bounds];
[selectionView setBackgroundColor:[UIColor greenColor]];
cell.selectedBackgroundView = selectionView;
[selectionView release];
}