gpt4 book ai didi

ios - 如何向自定义 UIButton 添加点击操作?

转载 作者:可可西里 更新时间:2023-11-01 05:56:44 25 4
gpt4 key购买 nike

我有一个加载 Nib 的 UIButton 子类:

@implementation BlaButtonVC

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSArray *subViews = [[NSBundle mainBundle] loadNibNamed:@"BlaButton" owner:self options:nil];
[self addSubview:subViews[0]];
}
return self;
}

@end

我可以将此按钮添加到 View 中,如下所示:

// ViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

BlaButtonVC *button = [[BlaButtonVC alloc] initWithFrame:CGRectMake(10, 10, 280, 44)];

button.titleXLabel.text = @"Bls";
button.descLabel.text = @"Kues";

[button addTarget:self action:@selector(tap:) forControlEvents:UIControlEventTouchUpInside];

[button becomeFirstResponder];

[self.view addSubview:button];
}

-(IBAction)tap:(id)sender
{
NSLog(@"sssss");
}

我的问题是 tap: 方法不会被调用。还尝试了一个普通的 UIButton,它确实有效,所以它一定是自定义 xib 文件的问题,我真的不知道哪个 View 首先响应点击操作?如何将按钮设置为响应点击操作的按钮?

我错过了什么?

在这里你可以找到完整的 xcode 项目:
https://www.dropbox.com/s/zjhwy7jm8jcywz4/blabla1_111.zip

谢谢!

最佳答案

禁用 View 的 subview ,因为它们会捕获触摸。
在 xib 中(启用用户交互)或通过代码:

((UIView *)subViews[0]).userInteractionEnabled = NO;

关于ios - 如何向自定义 UIButton 添加点击操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787588/

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