1

在此处输入图像描述我在 alertview 中有问题。最初我的 alertview 中有 6 个按钮。然后我不得不在我的 alertview 中添加两个按钮。当我添加两个按钮时,框架大小成为问题。

请参考截图..

-(IBAction)FilterButton:(id)sender
{
    UIAlertView *alert1 = [[UIAlertView alloc]
                           initWithTitle:nil
                           message:@"\n\n\n\n\n"
                           delegate:self
                           cancelButtonTitle:@"Cancel"
                           otherButtonTitles:@"Customer",@"Contact",@"Lead",@"Team Member",@"Ex-Team Member",@"Inactive Customer",@"All Contacts",nil];

    [alert1 show];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch (buttonIndex) {

        case 1:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'CUS' and isDeleted ='0';"];
            [self selected];
            break;            
        }
        case 2:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'CT' and isDeleted ='0';"];
            [self selected];
            break;            
        }
        case 3:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'LD' and isDeleted ='0';"];
            [self selected];
            break;            
        }       
        case 4:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'TM' and isDeleted ='0';"];
            [self selected];
            break;
        }
        case 5:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'ETM' and isDeleted ='0';"];
            [self selected];
            break;
        }
        case 6:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'INACUS' and isDeleted ='0';"];
            [self selected];
            break;
        }
        case 7:
        {
            qsql = [NSString stringWithFormat:@"select * from pu_Contacts where isDeleted ='0';"];
            [self selected];
            break;
        }
    }
}
4

3 回答 3

3

首先,没有截图。(好的,现在已修复)。

其次,看起来您正在使用UIAlertView询问用户他们想做什么。

这不是 aUIAlertView的用途。AUIAlertView是通知用户发生了一些他们需要知道的事情。

您需要使用的是UIActionSheet. 这些旨在要求用户根据他们刚刚采取的行动做出决定。即按下“相机”按钮,询问用户是否要拍照或从相机胶卷中选择。

这都在人机界面指南中。

第三,如果您需要在屏幕上放置 8 个选项和一个取消选项,那么您做错了。找到另一种方法,让所有这些都对用户可用,而不使用 8 个按钮。

其他选项可以查看...

你正在编写一个 iPap 应用程序。

您可以将所有选项放入 a UITableViewinside aUIPopOverController中。UITableView 更适合显示大量选择。

与上面类似,使用一个UIPickerView内部弹出窗口。同样,这更适合大量选择。它还使用户更容易理解他们正在选择其中一个选项。

可以有多种方法来做到这一点。

于 2013-06-10T06:53:27.070 回答
2

为什么不创建一个包含所有所需按钮的视图并显示它?

UIAlertview 不是为了这个目的

根据文档

使用 UIAlertView 类向用户显示警报消息。警报视图的功能与操作表相似但外观不同

于 2013-06-10T06:59:34.777 回答
2

我在 Alertview 中测试了您的创建代码添加按钮,但它很难管理,所以我建议您使用 UIActionsheet,如下面的代码:-

  UIActionSheet *MultipleAcions = [[UIActionSheet alloc] initWithTitle:@"title" delegate:self cancelButtonTitle:@"Cancel Button" destructiveButtonTitle:nil otherButtonTitles:@"Customer",@"Contact",@"Lead",@"Team Member",@"Ex-Team Member",@"Inactive Customer",@"All Contacts",nil];
    MultipleAcions.actionSheetStyle = UIActionSheetStyleDefault;
    [MultipleAcions showInView:self.view];

它看起来像下面的截图: -

在此处输入图像描述

您可以使用下面的 UIActionsheet 的委托获取每个按钮的索引:-

-(void)actionSheet:(UIActionSheet *)actionSheets clickedButtonAtIndex:(NSInteger)buttonIndex
于 2013-06-10T07:08:49.520 回答