UIAlertView带按钮,标题重叠?

时间:2014-03-05 14:24:50

标签: ios iphone uialertview

我有一个带有4个按钮和标题的警报视图。它在iOS 7上工作正常,但在iOS 6上,标题与第一个按钮重叠。 我怎么解决? 提前谢谢。

更新:这是代码:

UIAlertView * dialog = [[UIAlertView alloc] init];
[dialog setDelegate:self];
dialog.alertViewStyle=UIAlertViewStyleDefault;
[dialog setTitle:@"These are your choices"];
[dialog setMessage:@""];
[dialog addButtonWithTitle:@"Button 1"];
[dialog addButtonWithTitle:@"Button 2"];
[dialog addButtonWithTitle:@"Button 3"];
[dialog addButtonWithTitle:@"Cancel"];
[dialog show];

这里有截图:

screenshot

3 个答案:

答案 0 :(得分:1)

我猜这是在iOS 6中初始化后添加按钮时的一个错误。在initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:初始化程序中添加按钮,你应该没问题。

答案 1 :(得分:0)

您可以使用3个按钮在xib上创建自己的警报视图。

这有点困难,但它应该适用于ios6和7。

它应该是UIView的子类,我建议你禁用autolayout。

我希望它可以帮到你。

答案 2 :(得分:0)

我这样解决了:

-(void)willPresentAlertView:(UIAlertView *)alertView {
float currentVersion = 7.0;

if ([[[UIDevice currentDevice] systemVersion] floatValue] < currentVersion)
{
    [alertView setFrame:CGRectMake(alertView.frame.origin.x, alertView.frame.origin.y -20, alertView.frame.size.width, alertView.frame.size.height + 45)];
    for (UIView *view in alertView.subviews) {
        if ([view isKindOfClass:[UIButton class]]) {
            CGRect rect=view.frame;
            rect.origin.y += 45;
            view.frame = rect;
        }
    }
}
}