我自定义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 ;
}

或在视图中添加UITapGestureRecognizerUILongPressGestureRecognizer(如果要检测长按手势)。

关于ios - 自定义突出显示UIView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21035443/

10-11 14:27