#pragma mark - 答题区按钮点击方法
- (void)answerClick:(UIButton *)button
{
// 1. 如果按钮没有字,直接返回
if (button.currentTitle.length == ) 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(); 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