UIAlertView按钮位于iPad的警报窗口之外?

时间:2012-08-03 04:29:23

标签: iphone ipad uialertview uialertsheet

我遇到了与UIAlertView相关的问题。我已经创建了一个带有正文消息的警报和两个用于确定和取消的按钮。 当我呈现alertWindow时,按钮使其位置在警报窗口之外且不可访问。方向改变时会变得正常。

我尝试通过更改alertWindow的大小但问题存在。

这是我的代码

 UIAlertView *errorAlert=[[UIAlertView alloc]initWithTitle:errorAlertTitle message:errorAlertMessage  delegate:self cancelButtonTitle:errorAlertClose otherButtonTitles:@"Reload", nil];
     errorAlert.tag=2;
     errorAlert.frame = CGRectMake(0,0,500,600);

     [errorAlert show];
     [errorAlert release];

enter image description here

任何解决方案?

2 个答案:

答案 0 :(得分:1)

当您编写“提醒窗口”时,您指的是UIAlertView的可见部分,其中包含文字和按钮,对吧?您认为您是否在代码中设置了“警报窗口”的框架?您是否实际设置了透明阻止视图的框架,以防止用户与UI的其余部分进行交互并包含“警报窗口”? The view hierarchy of UIAlertView is private,所以我们无法确定它的结构,但你可能正在操纵错误的东西。请注意,文档还警告不要干扰UIAlertView视图层次结构,因此您可能不希望为UIAlertView设置任何视图属性,例如框架。

如果您真的想要修改“提醒窗口”,可以:

  1. 通过编写代码来分析警报视图的子视图,以便遍历它们并记录有用的信息(框架,类型等)。这可能会告诉您实际想要操作哪个子视图。
  2. 然后

    1. 构建UIAlertView后,使用callbacks in UIAlertViewDelegate操作警报窗口,即将显示。
    2. 但是,如果UIActionSheet的自动样式对您不起作用,您可能想要查看UIPopoverControllerUIAlertView吗?

答案 1 :(得分:0)

根据您的要求,我只是使用动作表,但问题是这样做:

添加以下代码:

 errorAlert.frame = CGRectMake(0,0,500,600);

之后

[errorAlert show];