如何在iPhone中创建复杂的UIAlertView

时间:2011-08-19 06:58:50

标签: iphone objective-c

我正在尝试创建复杂的UIAlert View。但是我没有得到正确的标记让它工作 我需要UIAlertView就像这样

  1. 它在左上角有一个png图像。在同一行中它有UIAlert titleBar。
  2. 下面是它有两行消息
  3. 它下面有TextFiled。它位于文本字段下方 再次相同的TextMessage
  4. 最后但不在列表中,它有两个按钮。
  5. 并且用户在文本字段中输入文本值并按下OK BUtton,它也会在标签上显示。

    我正在尝试这样的编码但它没有得到工作的问题

      UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Set Tags" 
                                                            message:@"Do you want to add tag.\nExample:-My Content" 
                                                           delegate:self 
                                                  cancelButtonTitle:@"OK" 
                                                  otherButtonTitles:nil];
    
          [message addTextFieldWithValue:@"" label:@"Enter tag Name"];
    
          [message addButtonWithTitle:@"Cancel"];
    
    
    
    
          UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 8, 30, 30)];
          NSString *path = [[NSString alloc] initWithString:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"tag.png"]];
          UIImage *bkgImg = [[UIImage alloc] initWithContentsOfFile:path];
          [imageView setImage:bkgImg];
          [bkgImg release];
          [path release];
          [message addSubview:imageView];
    
          if(FALSE)
          {
              [message addButtonWithTitle:@"Button 4"];
          }
    
          [message show];
    
          [message release]
    

    帮助我解决这个问题 谢谢。

2 个答案:

答案 0 :(得分:3)

哈里什, 我很难理解你的英语,所以我可能没有用这个答案来达到标记。但是,如果我正确理解了这个问题,那么我相信我的代码只会出现一个主要问题。

从我在UIAlertView上阅读的文档中,我没有看到方法“addTextFieldWithValue”作为该类的一部分。但是有一个对UIAlertViewStyle的引用,它是一个可以设置的属性,允许您告诉类使用文本字段显示自己。您可以找到课程参考here

[message addTextFieldWithValue:@"" label:@"Enter tag Name"];
//This will not work.

//Instead use this.
[message setAlertViewStyle:UIAlertViewStylePlainTextInput];

当然,您需要确保在单击按钮后添加了适当的委托方法来检索值。

我已经使用了您的代码并创建了一个只有一些小改动的示例项目。使用我的上述建议,我得到的结果反映在我拍摄的屏幕截图中。 Example Simulator Screen Shot

答案 1 :(得分:0)

在这种情况下,

UIAlertView不是您应该使用的组件。它不应该是定制的。您应该显示模态视图(包含您列出的所有项目)并使用presentModelViewController:animated:显示它。