选择单元格时,图像视图消失但 UILabel 消失
Posted
技术标签:
【中文标题】选择单元格时,图像视图消失但 UILabel 消失【英文标题】:UIImageView disappears but not UILabel when cell is selcted 【发布时间】:2015-12-09 11:16:41 【问题描述】:我有一个带有 UILabel 和 UIImageView 的自定义 UITableview 单元格,但在情节提要中制作并与 IBOutlet 连接时,当单元格被选中时,图像视图的背景会更改为选择颜色?如何让 UIImageView 的背景颜色保持不变?
谢谢
【问题讨论】:
【参考方案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
【讨论】:
如何以及在哪里调用 setSelected? 如你所见,函数声明前有override
关键字。你不必调用它。 UITableView 会为你调用它。只需将此方法放在您的 UITableViewCell 子类中即可。
我添加了示例用法。【参考方案2】:
我认为这可能是由于 tableviewcell 选择而发生的。 只需使用以下代码 sn-p
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
[tableview deselectRowAtIndexPath:indexPath animated:YES];
这可能会对您有所帮助。如果没有,请为此分享您的实施信息。
【讨论】:
【参考方案3】:您可能已将图像视图的背景颜色设置为清除颜色。
【讨论】:
【参考方案4】:您可以在-didSelectRowAtIndexPath
的UITableView
中更改您的单元格的imageView
-(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
【讨论】:
以上是关于选择单元格时,图像视图消失但 UILabel 消失的主要内容,如果未能解决你的问题,请参考以下文章