iOS-8 及更高版本 - UIAlertController 内的 UITableView

标签 ios objective-c uitableview uialertcontroller

我知道如何在 UIAlertView 中添加任何 Custom UI 通过使用 accessoryViewUITableView 但我现在很好奇,如果我们仍然可以选择在 UIAlertController 中添加 Custom UI,我想要的是 中的 UITableViewController UIAlertController 理解清晰。

最佳答案

感谢 StackOverflow 用户,我能够完成这项任务。

这是我的代码:

UIViewController *controller = [[UIViewController alloc]init];
UITableView *alertTableView;
CGRect rect;
if (array.count < 4) {
    rect = CGRectMake(0, 0, 272, 100);
    [controller setPreferredContentSize:rect.size];

}
else if (array.count < 6){
    rect = CGRectMake(0, 0, 272, 150);
    [controller setPreferredContentSize:rect.size];
}
else if (array.count < 8){
    rect = CGRectMake(0, 0, 272, 200);
    [controller setPreferredContentSize:rect.size];

}
else {
    rect = CGRectMake(0, 0, 272, 250);
    [controller setPreferredContentSize:rect.size];
 }

alertTableView  = [[UITableView alloc]initWithFrame:rect];
alertTableView.delegate = self;
alertTableView.dataSource = self;
alertTableView.tableFooterView = [[UIView alloc]initWithFrame:CGRectZero];
[alertTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[alertTableView setTag:kAlertTableViewTag];
[controller.view addSubview:alertTableView];
[controller.view bringSubviewToFront:alertTableView];
[controller.view setUserInteractionEnabled:YES];
[alertTableView setUserInteractionEnabled:YES];
[alertTableView setAllowsSelection:YES];
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert];
[alertController setValue:controller forKey:@"contentViewController"];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {

}];
[alertController addAction:cancelAction];
[self presentViewController:alertController animated:YES completion:nil];

Checkout the snapshot here ;)

关于iOS-8 及更高版本 - UIAlertController 内的 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896005/

相关文章:

iphone - ScrollView 中的砌体布局

android - 应用内结算到期

ios - Swift 中的 Objective C Setter 覆盖

ios - 更改静态 UITableViewCell 的高度以适合内容

ios - 获取 UITableView 单元格高度

ios - 访问用户twitter账号IOS

ios - 如何向 UIButton 添加多行文本?

objective-c - 当 View Controller 即将在 iOS4 中弹出时得到通知

ios - 在 Cocoa Touch 中实现去抖动/合并模式,例如 `layoutSubviews`

ios - 在 TableView 中仅显示一次 json 数组中的重复元素 swift