我自定义View扩展UIView
@interface AttachmentView : UIView
@property (nonatomic, getter=isHighlighted) BOOL highlighted;
@property (weak, nonatomic) IBOutlet UIImageView *imageFileType;
@property (weak, nonatomic) IBOutlet UILabel *lbName;
@property (weak, nonatomic) IBOutlet UILabel *lbSize;
- (void)initComponent;
@end
我重写方法
- (void)setHighlighted:(BOOL)highlighted {
if(highlighted) {
} else {
}
}
但是,当我触摸视图时,方法
setHighlighted
无法调用,如何解决? 最佳答案
UIView不喜欢突出显示状态的“UILabel和UIImageView”。
您应该使用- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
自己完成
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
self.highlighted = !self.highlighted ;
}
或在视图中添加
UITapGestureRecognizer
或UILongPressGestureRecognizer
(如果要检测长按手势)。关于ios - 自定义突出显示UIView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21035443/