ios - 如何为数组中的每个创建一个具有唯一图像和选择器的自定义 UIButton?

标签 ios iphone objective-c uibutton programmatically-created

我有几个从 NSMutableArray 创建的 UIButton。我正在尝试使用独特的图像自定义每个 UIButton。

在以下行中,我不确定用于分别为图像数组中的每个按钮设置图像的语法:

[btn setImage:[UIImage imageNamed:[myImages objectAtIndex:3]] forState:UIControlStateNormal];

这是我的其余代码:
NSMutableArray* buttonArray = [[NSMutableArray alloc] init];

for(int i = 0; i < 8; i++)
{
    // Custom UIButton
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

    [btn setFrame:CGRectMake(0.0f, 2.0f, 52.0f, 52.0f)];
    [btn setTitle:[NSString stringWithFormat:@"Button %d", i+1] forState:UIControlStateNormal];

    NSArray * myImages = [NSArray arrayWithObjects:@"category0.png", @"category-clothing1.png" , @"category2.png", @"category3.png", nil];

    [btn setImage:[UIImage imageNamed:[myImages objectAtIndex:3]] forState:UIControlStateNormal];

    [btn addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [buttonArray addObject:btn];

}

我还希望为每个按钮调用不同的选择器。

最佳答案

像这样的东西?我刚刚看到您关于每个按钮需要不同操作的帖子,但我会检查按钮的发送者并在您的 (buttonPressed:) 方法中相应地调整代码。您还应该确保您的按钮阵列具有适当数量的图像,因此更好的方法可能是仅根据您的图像阵列计数创建按钮数量。 (答案已编辑以反射(reflect)这一点)。我还想补充一点,您应该养成在更改正常状态时也更改图像突出显示状态的习惯,这样当您按下图像时它不会变为空白。

NSMutableArray* buttonArray = [NSMutableArray array];
NSArray * myImages = [NSArray arrayWithObjects:@"category0.png", @"category-clothing1.png" , @"category2.png", @"category3.png", nil];

for(int i = 0;i < [myImages count]; i++)
{
    // Custom UIButton
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

    [btn setFrame:CGRectMake(0.0f, 2.0f, 52.0f, 52.0f)];
    [btn setTitle:[NSString stringWithFormat:@"Button %d", i] forState:UIControlStateNormal];
    [btn setImage:[UIImage imageNamed:[myImages objectAtIndex:i]] forState:UIControlStateHighlighted];
    [btn setImage:[UIImage imageNamed:[myImages objectAtIndex:i]] forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [buttonArray addObject:btn];
}

关于ios - 如何为数组中的每个创建一个具有唯一图像和选择器的自定义 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13727099/

相关文章:

ios - Callkit:最近的通话记录未显示视频通话的拨出电话

iphone - 如何从没有任何符号的 kABPersonPhone 属性中获取电话号码?

iphone - 在 iOS 应用程序中通过 WhatsApp 共享图像/文本

objective-c - 如何在表格 View 的单元格中创建按钮?

ios - Objective-C - [self.view viewWithTag] 返回 null

ios - 如何导出 "fat"Cocoa Touch Framework(用于模拟器和设备)?

ios - 多行 UILabel 未正确换行

ios - Spritekit 2.5d 如何使物体变得更接近(例如 Temple Run)

IOS/Iphone : how to open a pdf link without . iphone 浏览器中的 pdf 扩展

ios - 我如何在 IOS 中使用 HTML.fromhtml?