#pragma mark - 答题区按钮点击方法 - (void)answerClick:(UIButton *)button { // 1. 如果按钮没有字,直接返回 if (button.currentTitle.length == 0) return; // 2. 如果有字,清除文字,候选区按钮显示 // 1> 使用button的title去查找候选区中对应的按钮 UIButton *btn = [self optionButtonWithTilte:button.currentTitle isHidden:YES]; // 2> 显示对应按钮 btn.hidden = NO; // 3> 清除button的文字 [button setTitle:@"" forState:UIControlStateNormal]; // 4> 只要点击了按钮上的文字,意味着答题区的内容不完整 [self setAnswerButtonsColor:[UIColor blackColor]]; } - (UIButton *)optionButtonWithTilte:(NSString *)title isHidden:(BOOL)isHidden { // 遍历候选区中的所有按钮 for (UIButton *btn in self.optionsView.subviews) { if ([btn.currentTitle isEqualToString:title] && btn.isHidden == isHidden) { return btn; } } return nil; } // 乱序 - (void)randamOptions { // 对options数组乱序 self.options = [self.options sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) { int seed = arc4random_uniform(2); if (seed) { return [str1 compare:str2]; } else { return [str2 compare:str1]; } }]; NSLog(@"%@", self.options); } - (instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { [self setValuesForKeysWithDictionary:dict]; // 对备选按钮进行乱序,只在加载的时候,做一次乱序 [self randamOptions]; } return self; }
点击事件
@implementation HMViewController /** 不能够交互的 alpha <= 0.01 hidden = YES userInteraction = NO 父视图不允许交互,也不能交互 在父视图可见范围内,可以交互,范围之外不能交互 */ - (IBAction)click { NSLog(@"%s", __func__); } @end
时间: 2024-10-25 19:28:14