1

我遇到了一个棘手的故障。

我有一个 .xib,它是在我创建新UIViewController子类时由 XCode 创建的。它有很多元素,包括一些UIButtons、一堆UILabels、一个里面有一些其他视图的 smallUIView以及一个UIImageView包含大部分透明图像的 a。

viewDidLoad中,我将 的背景颜色设置为UIImageView使用图案图像的颜色。

当我在模拟器或我的 iPhone 4(都运行 iOS 5.1)上显示这个视图控制器时,一切都很顺利;图案背景显示,所有交互工作,等等。

然而,当我在 iOS 4.3 上进行测试时(无论是在模拟器中还是在我的 iPod Touch 2G 上),我试图基于插座(例如[self.myBackgroundImageView setBackgroundColor...][self.mySegmentedControl setEnabled:NO])进行操作的一切似乎都根本不起作用。

当视图被呈现时,我正在做的唯一甚至是模糊不寻常的事情就是这样,这使得它在弹出窗口中的大小合适:

- (void) viewWillAppear:(BOOL)animated {        
    CGSize size = CGSizeMake(320, 480); // size of view in popover
    self.contentSizeForViewInPopover = size;

    [super viewWillAppear:animated];
}

我真的想不出还有什么可能是问题所在。我已经清理,重建,所有这些东西。还是没有骰子。

有人遇到过这种情况么?

根据 ott 的请求更新:

在 -viewDidLoad 末尾添加以下内容:

NSLog(@"self.myBackgroundImageView = %@ | %@", [self.myBackgroundImageView description], [[self.myBackgroundImageView backgroundColor] description]);

...输出是:

self.myBackgroundImageView = <UIImageView: 0x6d48c80; frame = (0 0; 320 480); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x6d48b60>> | <UIImageView: 0x5f459b0; frame = (0 0; 320 480); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x5f45890>> // kCGColorSpaceModelPattern 1

所以……不是零。不知道这里的故事是什么。

更新 2: 在 iOS 4.3 中禁用 UISegmentedControl 似乎不会使其显示变暗,所以这就是那部分的内容。至于背景图案图像:我找不到对此的确认,但我开始认为这是 iOS 4 中的一个错误,它使使用图案图像 UIColor 的背景颜色无法在 UIImageView 上正确显示。如果我使 UIImageView 具有清晰的背景并将图案图像 UIColor 作为主视图的背景,则效果很好。如果有人提出解决方法,或确认这确实是 iOS 4 错误,将不胜感激。

4

0 回答 0