我有一个带有UILabel和UIImageView的自定义UITableview单元,当单元格在故事板中制作并与IBOutlet连接时,当选择单元格时,图像视图的背景会变为选择颜色?如何让UIImageView的背景颜色保持不变?
由于
答案 0 :(得分:1)
尝试通话:
cell.selectionStyle = UITableViewCellSelectionStyleNone
cellForRowAtIndexPath
中的。
并(可选)覆盖:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
迅速:
override func setSelected(selected: Bool, animated: Bool)
Swift 示例用法:
override func setSelected(selected: Bool, animated: Bool) {
if selected {
yourView.alpha = 0.5
} else {
yourView.alpha = 1.0
}
}
您还可以在animateWithDuration
区块内更改视图的Alpha:
override func setSelected(selected: Bool, animated: Bool) {
UIView.animateWithDuration(0.3, animations: {
if selected {
yourView.alpha = 0.5
} else {
yourView.alpha = 1.0
}
})
}
Obj-C 示例用法:
#import "YourTableViewCell.h"
@implementation YourTableViewCell
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
//your code
// example: yourView.backgroundColor = [UIColor greenColor];
}
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
[super setHighlighted:highlighted animated:YES];
//your code
// example: yourView.backgroundColor = [UIColor greenColor];
}
@end
答案 1 :(得分:0)
您可以在-didSelectRowAtIndexPath
UITableView
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//get the cell from the selected row.
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
//change custom cell's imageView to desired backgroundColor
selectedCell.imageView = [UIColor clearColor];
}
不要忘记实施UITableViewDelegate
和UITableViewDatasource
答案 2 :(得分:0)
我认为由于tableviewcell选择可能会发生这种情况。 只需使用以下代码段
即可- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableview deselectRowAtIndexPath:indexPath animated:YES];
}
这可能会对你有所帮助。如果没有,那么请分享您的实施信息。
答案 3 :(得分:0)
您可能已将图像视图的背景颜色设置为清除颜色。