Как добавить UITableView в UIAlertView в iOS 7
Поискал, увидел, что подпредставление больше не поддерживается в iOS 7.
Некоторые люди рекомендуют создавать пользовательские представления, но я не уверен, как мне это сделать.
Вот мой код, кто-нибудь может указать мне правильное направление?
-(IBAction)click_select_fruit_type
{
select_dialog = [[[UIAlertView alloc] init] retain];
[select_dialog setDelegate:self];
[select_dialog setTitle:@"Fruit Type"];
[select_dialog setMessage:@"\n\n\n\n"];
[select_dialog addButtonWithTitle:@"Cancel"];
idType_table = [[UITableView alloc]initWithFrame:CGRectMake(20, 45, 245, 90)];
idType_table.delegate = self;
idType_table.dataSource = self;
[select_dialog addSubview:idType_table];
[idType_table reloadData];
[select_dialog show];
[select_dialog release];
}
3 ответа
Вы можете изменить accessoryView на любой собственный customContentView в стандартном представлении предупреждений в iOS7.
[alertView setValue:customContentView forKey:@"accessoryView"];
Обратите внимание, что вы должны вызвать это до [alertView show].
Простейший иллюстрирующий пример:
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
v.backgroundColor = [UIColor yellowColor];
[av setValue:v forKey:@"accessoryView"];
[av show];
Реальный tableView как подпредставление примера UIAlertView:
Ты не можешь Apple устарела возможность добавлять любые подпредставления в UIAlertView
в iOS 7. Что я считаю хорошим решением. Много людей оскорбляли UIAlertView
,
Создание пользовательского представления - хорошая идея, но это не то, что вы написали в своем коде. Похоже, вы добавляете подпредставления для UIAlertView
снова.
Смотрите Alert View UI Guide здесь.
Вам придется подкласс UIViewController
и использовать его preferredContentSize
свойство делать некоторые "пользовательские модальные" имитируя макет UIAlertView