gpt4 book ai didi

ios - 在 iOS 上以编程方式向按钮添加操作

转载 作者:可可西里 更新时间:2023-11-01 04:36:54 26 4
gpt4 key购买 nike

我正在尝试向我以编程方式创建的按钮添加一个 Action :

        [btn    addTarget:self
action:@selector(indexAction)
forControlEvents:UIControlEventTouchUpInside];

这很好用。但是,我现在想将一个变量 (int k) 传递给 indexAction 方法。我无法让它工作:

        [btn    addTarget:self
action:@selector([self indexAction:k])
forControlEvents:UIControlEventTouchUpInside];

我确定我做错了什么。这是上面代码的上下文:

  -(void) initIndexButtons {

float buttonPadding = -8;
float buttonWidth = 23;
float buttonHeight = 80;
CGRect frame = CGRectMake(0,0,0,0);
for (int k=0;k<5;k++)
{
UIButton* btn = [[UIButton alloc] initWithFrame:frame];; btn.tag = k;
btn.frame = CGRectMake(0, k*(buttonPadding+buttonHeight), buttonWidth, buttonHeight);

UIImage *newImage = [UIImage imageNamed:@"index.png"];
[btn setBackgroundImage:newImage forState:UIControlStateNormal];

[btn addTarget:self
action:@selector(self indexAction:k)
forControlEvents:UIControlEventTouchUpInside];
}
}

-(void)indexAction:(int *)buttonTag
{
NSLog(@"buttonTag: %i", buttonTag);
}

编辑:

我将我的代码更改为:

// ...
[btn addTarget:self
action:@selector(indexAction:)
forControlEvents:UIControlEventTouchUpInside];

//[self indexAction:k];

[indexView addSubview:btn];
[indexView sendSubviewToBack:btn];
}
}

-(void)indexAction:(id)sender
{
NSInteger *tid = ((UIControl *) sender).tag;
NSLog(@"buttonTag: %i", tid);
}

但现在我收到警告消息“初始化从整数生成指针,而没有对 NSInteger *tid = ((UIControl *) sender).tag;

行进行强制转换

编辑:

这是正确的代码行:

NSInteger tid = ((UIControl*)sender).tag;

最佳答案

通常一个按钮调用的方法有一个参数:

(id)sender

看问题-how to pass a variable to a UIButton action

关于ios - 在 iOS 上以编程方式向按钮添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5821994/

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