Я создаю форму с флажками в своем приложении, и, конечно, библиотека XCode на самом деле не предоставляет флажки в качестве опции формы (сумасшедшая); поэтому я создал кнопки с изображениями, напоминающими флажки (checked/unchecked).iOS Building Form with Checkboxes
Сказанное: моя форма довольно длинная и требует 20+ флажков - и если я правильно понимаю, каждый флажок должен быть «подключен» индивидуально; , например. для трех флажков на моем экране, см. Ниже код ... Я не могу представить, что нужно делать ВСЕ это из 20 флажков (не говоря уже о 3!) - есть ли лучший способ сделать это? Помощь/предложения приветствуются.
.h
@interface PetRegistrationViewController : UIViewController {
BOOL checked1;
BOOL checked2;
BOOL checked3;
}
@property (weak, nonatomic) IBOutlet UIButton *checkboxButton;
@property (weak, nonatomic) IBOutlet UIButton *checkboxButton2;
@property (weak, nonatomic) IBOutlet UIButton *checkboxButton3;
- (IBAction)checkButton:(id)sender;
- (IBAction)checkButton2:(id)sender;
- (IBAction)checkButton3:(id)sender;
.m
@synthesize checkboxButton;
@synthesize checkboxButton2;
@synthesize checkboxButton3;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
checked1 = NO;
checked2 = NO;
checked3 = NO;
}
- (IBAction)checkButton:(id)sender {
if (!checked1) {
[checkboxButton setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
checked1 = YES;
NSLog(@"button 1");
}
else if (checked1) {
[checkboxButton setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
checked1 = NO;
}
}
- (IBAction)checkButton2:(id)sender {
if (!checked2) {
[checkboxButton2 setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
checked2 = YES;
NSLog(@"button 2");
}
else if (checked2) {
[checkboxButton2 setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
checked2 = NO;
}
}
- (IBAction)checkButton3:(id)sender {
if (!checked3) {
[checkboxButton3 setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
checked3 = YES;
NSLog(@"button 3");
}
else if (checked3) {
[checkboxButton3 setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
checked3 = NO;
}
}
Я думаю, вы должны использовать UITableView. вы можете хранить ячейки (например, @property NSArray *), и вам не нужно их деактивировать. в противном случае выкладывание поля формы +20 может быть болезненным. вы можете обрабатывать нажатия кнопок в классе ячейки. я надеюсь, что может помочь –