根据此回答Custom UITableViewCell selection style?中有关如何为UITableViewCell
制作自定义选择样式的建议,我执行了以下操作。
首先,在我的自定义视图控制器中,它有一个UITableView
作为属性,并作为其数据源和委托我有以下内容:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//UITableViewCell *cell;
NavTableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
然后这是我的整个自定义UITableViewCell:
#import "NavTableViewCell.h"
@implementation NavTableViewCell
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[super setHighlighted:highlighted animated:animated];
if(highlighted){
self.contentView.alpha = .5;
}else{
self.contentView.alpha = 1;
}
}
@end
我也尝试将代码放在setSelected
中。在这两种情况下,我都没有看到我选中/突出显示的表格视图单元格中的任何更改。我尝试过更改颜色并更改其中标签的颜色,但根本没有变化。我也尝试过为单元格选择所有类型的选择样式,只要看到我的自定义就无济于事。
我做错了什么?
答案 0 :(得分:7)
来自文档:
您可以使用 selectedBackgroundView 为单元格提供自定义外观 选择。选择单元格后,此视图位于上方 backgroundView和在contentView后面。
因此,无论您在选择单元格时想要对单元格执行什么操作,都必须为<video autoplay poster="" id="bgvid" loop>
<source src="?" type="video/webm">
<source src="?" type="video/mp4">
</video>
执行此操作。
答案 1 :(得分:0)
试试这个:
UIView *highlightView = [[UIView alloc] init];
highlightView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:1.0 alpha:.5];
cell.selectedBackgroundView = highlightView;