我想在代码中模仿这种风格,更具体地说是在 setSelected 中。
假设我使用的是自定义单元格,是否有人知道我该怎么做。
所有单元格选择样式都是通过设置selectedBackgroundView
单元格的属性来实现的。对于系统蓝色和白色的,这些是带有蓝色和灰色渐变的内置视图。将单元格选择样式设置为蓝色或灰色只是告诉单元格使用这些视图之一作为其选定的背景。
假设您已将所有单元格内容添加到内容视图,您仍然可以将这些样式用于自定义单元格。
您可以创建自己的视图(通常是可拉伸图像或自定义绘图视图)并将其设置为自定义效果的选定背景视图。
当单元格被选中时,如果可以的话,它还会告诉它的任何内容视图子视图(标签等)被突出显示。highlightedTextColor
您可以通过在任何标签上设置 来控制其外观。
您无需触摸即可实现这一切setSelected
。这一切都由基本实现完成。
找到了一个完全符合UIColor
Apple 实施的帖子UITableViewCellSelectionStyleGray
:
UIColor* selectedColor = [UIColor colorWithRed:217.0/255.0
green:217.0/255.0
blue:217.0/255.0 alpha:1.0];
要更改选择内容,只需在自定义扩展中实现您setSelected:(BOOL)selected
的方法。UIButton
这看起来像这样:
- (void)setSelected:(BOOL)selected{
[super setSelected:selected];
if( selected ){
// change things here on highlight
} else {
// change things here on unhighlight
NSLog(@"unselected");
}
}
要进入此模式,您应该将单元格设置为selected = YES
.
试试这个可能对你有帮助
UIView *selectedBackgroundViewForCell = [UIView alloc]init];
[selectedBackgroundViewForCell setBackgroundColor:[UIColor grayColor]];
theCell.selectedBackgroundView = selectedBackgroundViewForCell;
(或者)
cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease];