gpt4 book ai didi

ios - 在 NSMutableArray Objective-C 中调用 UIButton 对象的方法

转载 作者:行者123 更新时间:2023-11-28 18:53:21 24 4
gpt4 key购买 nike

我有一个名为按钮的数组,它由 UIButton 对象组成。我按如下方式填充它:

for (int i=0; i<self.numButtons; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Title" forState:UIControlStateNormal];
button.frame = CGRectMake(xCoord-40, y, 80, 20);
[button setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
[button setTag:i];
[self.buttons addObject:button];
[self.view addSubview:button];
y+= 45;
}

这些按钮的 Action 是buttonAction。此操作应该更改所选按钮的颜色。以下是我的实现方式:

-(void) buttonAction:(id)sender{
int num = (int)[sender tag];
[[self.buttons objectAtIndex:num] setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
NSLog(@"%@", [self.buttons objectAtIndex:buttonClicked].titleLabel.text);
}

结果是没有颜色变化。即使当我尝试 NSLog 按钮的标题时,它也会返回(空)。所以我的问题是如何解决这个问题以及如何在数组内的对象上调用方法?任何帮助,将不胜感激。谢谢!

最佳答案

所有证据都表明 self.buttonsnil。你有没有初始化过它?

某处你需要这样一行:

self.buttons = [NSMutableArray array];

当然,您可以将 sender 参数用于您的 buttonAction: 方法:

- (void)buttonAction:(UIButton *)button {
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
}

注意参数的变化。

关于ios - 在 NSMutableArray Objective-C 中调用 UIButton 对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200234/

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