Как добавить 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

Другие вопросы по тегам