GSRadioButtonSetController
实现了单选按钮数组背后的逻辑。换句话说,给它一组按钮来管理,它将确保每次只能选择一个。在组中选择第二个按钮会自动取消第一个按钮的选择。
(如果您熟悉 HTML 中的 <input type='radio'>
,它就像那样,但是针对 Cocoa.)
只需将 GSRadioButtonSetController.h 和 GSRadioButtonSetController.m 拷贝到您的项目中。
假设您有一个名为 MyViewController
的视图控制器。以下是 MyViewController.h
#import <UIKit/UIKit.h>
#import "GSRadioButtonSetController.h"
// Declare that your controller class implements the
// GSRadioButtonSetControllerDelegate protocol
@interface MyViewController : UIViewController <GSRadioButtonSetControllerDelegate>
// Declare a property to represent your
// GSRadioButtonSetController instance
@property (nonatomic, strong) GSRadioButtonSetController * radioButtonSetController;
@end
以及这是 MyViewController.m
#import "GSViewController.h"
@implementation GSViewController
#pragma mark - GSRadioButtonSetController delegate methods
- (void)radioButtonSetController:(GSRadioButtonSetController *)controller
didSelectButtonAtIndex:(NSUInteger)selectedIndex
{
// Handle button selection here
NSLog(@"Someone just selected button %u!", selectedIndex);
}
@end
您可以在代码中或在 Xib 中完成此操作。按照您的喜好设置按钮样式。GSRadioButtonSetController 会将 selected
属性设置为 YES
,因此务必为选择模式添加区分性样式。
将以下内容添加到视图控制器的 viewDidLoad
方法中。
// Instantiate your GSRadioButtonSetController object
self.radioButtonSetController = [[GSRadioButtonSetController alloc] init];
// Set its delegate to your view controller
self.radioButtonSetController.delegate = self;
// Set its buttons property to an array of buttons that you've
// created previously.
self.radioButtonSetController.buttons = myButtons;
此作品受 知识共享署名 3.0 国际许可协议 的许可。
您可以在任何项目中使用此代码,包括商业项目。请在合适的位置包含以下文本,例如您的应用程序的关于页面
使用 Simon Whitaker 的 GSRadioButtonSetController