gpt4 book ai didi

ios - 子类化 UIButton 并检测 UIControlEventTouchUpInside

转载 作者:行者123 更新时间:2023-11-29 02:56:31 24 4
gpt4 key购买 nike

我正在尝试检测按钮何时被按下,因此响应 UIControlEventTouchUpInside 事件,我试过这个:

- (void)setHighlighted:(BOOL)highlighted
{
if (highlighted)
{
self.titleLabel.textColor = [UIColor whiteColor];
[self.circleLayer setFillColor:self.color.CGColor];
}
else
{
[self.circleLayer setFillColor:[UIColor clearColor].CGColor];
self.titleLabel.textColor = self.color;
}
}

但只有当手指放在按钮上并且没有释放时,我如何在子类中检测到触摸操作内部?

最佳答案

您可以做的是在 init 方法中添加一个目标,并使用一个 bool 值来保持按钮状态:

在 CustomButton.h

@property(nonatomic,assign) BOOL selected; 

在 CustomButton.m

- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.selected = NO;
[self addTarget:self action:@selector(toggle:) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}


- (IBAction)toggle:(id)sender{
self.selected = !self.selected;
if (self.selected)
{
self.titleLabel.textColor = [UIColor whiteColor];
[self.circleLayer setFillColor:self.color.CGColor];
}
else
{
[self.circleLayer setFillColor:[UIColor clearColor].CGColor];
self.titleLabel.textColor = self.color;
}
}

关于ios - 子类化 UIButton 并检测 UIControlEventTouchUpInside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23825761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com