【问题标题】:Code works on iPhone simulator but not on the device代码适用于 iPhone 模拟器,但不适用于设备
【发布时间】:2011-03-22 09:56:51
【问题描述】:

我正在使用以下代码在 ipad 应用程序中切换两种不同的皮肤/主题。 该代码在模拟器中运行良好,但在设备上运行良好。任何人都可以就为什么会发生这种情况提出任何建议吗?

    if (skin == 1) {

            UIImage* skinSelector = [UIImage imageNamed:@"button1.png"];
            self.imgSkinSelector = [[UIImageView alloc] initWithImage:skinSelector];
            self.imgSkinSelector.center = CGPointMake(88, 88);
            self.imgSkinSelector.alpha = 0;
            [self.landscape addSubview:self.imgSkinSelector];


    }

    else {

            UIImage* skinSelector2 = [UIImage imageNamed:@"button2.png"];
            self.imgSkinSelector = [[UIImageView alloc] initWithImage:skinSelector2];
            self.imgSkinSelector.center = CGPointMake(74, 74);
            [self.landscape addSubview:self.imgSkinSelector];
    //      self.skinSelector.hidden = 1;


    }

【问题讨论】:

  • 究竟是什么不起作用?您是否尝试过调试它?哪一行给你意想不到的结果?你确实提供的细节不够……
  • 如果选择不同的皮肤,为什么中心点不同?
  • 有一点,当触摸时会显示 skin2/theme2,当再次触摸时会显示 skin1/theme1 等等……可能是因为中心点关闭了。我原以为关闭中心点在模拟器中也会产生与设备上相同的结果。

标签: iphone ipad uiimageview uiimage


【解决方案1】:

我曾经遇到过模拟器正确选择资源(图像)而不是设备(iPhone)的问题。

至少在我的情况下,事实证明是图像名称的情况。确保图像的名称与代码中所写的完全一致(button.png / Button.png 等)

只是猜测...

【讨论】:

    【解决方案2】:

    您的图像可能存在问题,它在模拟器中显示良好,但在设备中显示不正常……只需 4 次尝试使用另一个图像代替。 谢谢

    【讨论】:

      【解决方案3】:

      试试这个:

      首先,不要在每次要更改主题时都分配 imgSkinSelector。 Alloc/init 仅在您的 viewDidLoad/loadView 函数中执行一次,如下所示:

      self.imgSkinSelector = [[UIImageView alloc] init];
      

      然后在您要更改主题的函数中,使用以下代码:

      if (skin == 1) {
      
      [self.imgSkinSelector setImage:[UIImage imageNamed:@"button1.png"]];
      self.imgSkinSelector.center = CGPointMake(88, 88);
      self.imgSkinSelector.alpha = 0;
      [self.landscape addSubview:self.imgSkinSelector];
      

      } 否则 {

      [self.imgSkinSelector setImage:[UIImage imageNamed:@"button2.png"]];
      self.imgSkinSelector.center = CGPointMake(74, 74);
      [self.landscape addSubview:self.imgSkinSelector];
      

      }

      希望这对你有用。

      【讨论】:

      • 我还将在ifelse 中删除对addSubView 的调用。您不想多次添加同一个视图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2011-03-08
      • 2015-02-13
      • 2011-03-20
      • 1970-01-01
      相关资源
      最近更新 更多