【问题标题】:iphone to ipad, iphone 4 uialertview problemsiphone到ipad,iphone 4 uialertview问题
【发布时间】:2010-07-16 21:33:37
【问题描述】:

所以我已将代码升级到 ipad(即转换为通用应用程序)。但是,IOS4 的 UIAlertview 渲染似乎已关闭。它不是位于中间,而是跳起来并显示在顶部,一半的盒子被切断。横向方向也是如此。

我的理解是 UIalertview 总是设置在中间?我查看了代码,并没有在代码中的任何地方设置框架/位置。这只发生在 4.0 上,在 iphone 4 和运行 4.0 的 itouch 上。其他所有版本都很好,包括 ipad。有什么想法吗?

谢谢。

【问题讨论】:

  • 你的作品是什么样的?你有标题和内容还是只有一个或另一个?我看到了同样的东西,最终还是不得不调整框架,所以你尝试移动框架吗?
  • 我实际上是在为别人调试这个。通过创建,您是指分配和初始化吗?我认为它既有标题又有内容。我查看了初始化并没有看到任何框架使用。我会再检查一次。出于好奇,这是否只显示在 4.0 而不是其他版本,并且只有在升级到通用之后才显示?

标签: iphone ipad rendering uialertview


【解决方案1】:

似乎是一个错误。我在装有 iOS 3.2 的 iPad 上也遇到了问题。

解决办法:

a) 检查您的应用状态: 在 iOS 4 中只需使用

[UIApplication sharedApplication].applicationState

旧版 iOS:手动存储应用状态:

-(void)applicationWillResignActive:(UIApplication *)application
{
    self.appIsInBackground = YES;
}

-(void)applicationWillTerminate:(UIApplication *)application
{
    self.appIsInBackground = YES;
}

-(void)applicationDidBecomeActive:(UIApplication *)application
{
    // Open your UIAlert here if self.appIsInBackground == YES;

    self.appIsInBackground = NO;
}

b) 在应用激活后打开 UIAlert,如上面 cmets 中所示。

【讨论】:

    【解决方案2】:

    您的警报是否添加了任何文本字段?

    因为在 4.0+ 中,如果您在警报视图中有文本字段,iOS 会将警报视图滚动到可见部分。

    【讨论】:

      【解决方案3】:

      我在 iPad 3.2 上遇到同样的问题,当应用程序退出活动并且在那个时候显示警报时,警报将显示在左上角。所以我在方法中使用以下代码修复了 -(void)applicationDidBecomeActive:(UIApplication *)application

      //Check that key window is alert view
      if ([[[UIApplication sharedApplication].keyWindow description] hasPrefix:@"<_UIAlertOverlayWindow"]) {
          //Yes then check for subviews tht are alertViews
          UIWindow *alertViewWindow = [UIApplication sharedApplication].keyWindow;
          NSArray *subViews = [alertViewWindow subviews];
          for (UIView *subview in subViews) 
          {
              if ([subview isKindOfClass:[UIAlertView class]]) 
              {
                  //Retain it
                  UIAlertView *alertView = (UIAlertView *)[subview retain];
                  //Now dismiss it and then show it again
                  [alertView dismissWithClickedButtonIndex:0 animated:NO];//Here ClickedButtonIndex must be according to cancel button
                  //Show the alert view again
                  [alertView show];
                  //Release previsous retained object
                  [alertView release];
      
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-01
        • 2011-04-24
        相关资源
        最近更新 更多