UIButtons 的 Objective C 数组(包括处理初始化、操作等)

Posted

技术标签:

【中文标题】UIButtons 的 Objective C 数组(包括处理初始化、操作等)【英文标题】:Objective C array of UIButtons (including taking care of initialization, action, etc.) 【发布时间】:2014-03-13 21:58:05 【问题描述】:

我很难制作一组 UI 按钮,而不是制作许多单独的按钮。我正在尝试创建四个并拥有:

ViewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController 
    IBOutlet UIButton *b0;
    IBOutlet UIButton *b1;
    IBOutlet UIButton *b2;
    IBOutlet UIButton *b3;


@property (nonatomic, strong) UIButton *b0;
@property (nonatomic, strong) UIButton *b1;
@property (nonatomic, strong) UIButton *b2;
@property (nonatomic, strong) UIButton *b3;

@end

ViewController.m:

- (IBAction)b0Click:(id)sender 
    //Do something


- (IBAction)b1Click:(id)sender 
    //Do something


- (IBAction)b2Click:(id)sender 
    //Do something


- (IBAction)b3Click:(id)sender 
    //Do something

任何帮助将不胜感激。谢谢!

【问题讨论】:

你没有描述问题(数组在哪里?它没有做什么?)。你看过IBOutletCollection吗? 您是否尝试从界面生成器创建它们?如果是这样,您就没有创建指向您的参考资料的渠道。另请查看IBOutletCollection 【参考方案1】:

定义一个IBOutletCollection

@property (nonatomic, strong) IBOutletCollection(UIButton) buttons;

现在将所有按钮连接到此集合。

您现在可以通过以下方式访问按钮:

[self.buttons enumerateObjectsUsingBlock:^ (UIButton* button, NSUInteger index, BOOL* stop) 
//Do stuff here
];

我必须警告您不要对数组中按钮的顺序做出假设。最好给每个按钮一个标签,然后在action方法中根据他们的标签决定走哪条代码路径。

【讨论】:

以上是关于UIButtons 的 Objective C 数组(包括处理初始化、操作等)的主要内容,如果未能解决你的问题,请参考以下文章

带有分隔线的Objective C UIButton并在选择时更改文本颜色

将NSArray中的每个NSString元素显示为UIButton Objective C

将 NSArray 中的每个 NSString 元素显示为 UIButton Objective C

Objective C UIButton with divider并在选中时更改textcolor

在 iOS 中编写 UIButtons 时避免代码重复

UIButtons 在动画期间没有响应 - iOS Swift 3