Я должен отобразить пользовательский запросчик запросов iOS 7-стиля с набором пользовательских кнопок (в частности, фильтр категорий). Для этого я нашел отличный SDCAlertView на GitHub. Мой подход заключается в создании настраиваемого UIViewController
, который обрабатывает создание кнопок и кнопка прикосновений, его экземпляра, а затем вставить в предупреждении-х contentView
так:SDCAlertView и UIViewController с UIButton
SDCAlertView *alert = [[SDCAlertView alloc] initWithTitle:@"Filter"
message:nil
delegate:self
cancelButtonTitle:@"Clear"
otherButtonTitles:@"Filter", nil];
GKSecondViewController *vc = [[GKSecondViewController alloc] init];
UIView *view = vc.view;
[alert.contentView addSubview:view];
[view sdc_centerInSuperview];
[alert.contentView sdc_pinHeight:100];
[alert.contentView sdc_pinWidth:100];
[alert.contentView setBackgroundColor:[UIColor redColor]];
[alert show];
Мой контроллер представление (GKSecondViewController
) выглядит следующим образом:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[self.view setBackgroundColor:[UIColor grayColor]];
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view sdc_pinHeight:100];
[self.view sdc_pinWidth:100];
UIButton *button = [[UIButton alloc] init];
[button setTitle:@"Button" forState:UIControlStateNormal];
[button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]];
[button setTranslatesAutoresizingMaskIntoConstraints:NO];
[button sdc_pinHeight:100];
[button sdc_pinWidth:100];
[self.view addSubview:button];
[button sdc_centerInSuperview];
}
return self;
}
- (void)tap:(UIGestureRecognizer *)gesture
{
gesture.view.backgroundColor = [UIColor blackColor];
}
(Вы, возможно, потребуется SDCAutoLayout тоже.) при нажатии на кнопку в боевой готовности, он выходит из строя без каких-либо намеков на tracelog. Что я пропускаю или делаю неправильно?