0

我有大约 20 个应用程序,屏幕上有一张图片,屏幕顶部有一个麦克风和扬声器,这样人们就可以录制他们的声音并回放。所有这些都可以在设备和模拟器上正常工作。

我正在完成一个使用文本而不是图片的新应用程序,并且我在屏幕上放置了一个启用滚动的 UIWebView 或一个 UIScrollView。当我在 6.1 的模拟器中运行它时,两个屏幕都在屏幕上显示麦克风和扬声器的 UIButtons。其他版本的模拟器或运行 iOS 5.1.1 或 iOS 6.1.2 的设备上都不会出现录制按钮。

我上周刚刚更新了所有的应用程序,它们在模拟器和设备上运行良好,而且我没有收到用户关于缺少录制按钮的反馈。对于这个应用程序,我能想到的唯一区别是它使用了 ScrollView。如果我查看屏幕上应该有哪些视图( NSLog(@"%@", self.view.subviews); )麦克风和扬声器已放置在那里,它们只是不可见。它们是隐藏按钮顶部的不透明按钮。此应用程序中不使用 10000 的值。

   "<UIWebView: 0x28dd40; frame = (30 100; 964 624); autoresize = W+H; layer = <CALayer: 0x28ddd0>>",
"<UIButton: 0x25fac0; frame = (0 137; 90 90); hidden = YES; opaque = NO; layer = <CALayer: 0x25fb50>>",
"<UIButton: 0x283210; frame = (0 137; 90 90); opaque = NO; layer = <CALayer: 0x2832a0>>",
"<UIButton: 0x284390; frame = (13.5 317; 90 90); hidden = YES; opaque = NO; layer = <CALayer: 0x284420>>",
"<UIButton: 0x2855d0; frame = (13.5 317; 90 90); opaque = NO; layer = <CALayer: 0x285660>>",
"<UIButton: 0x286660; frame = (13.5 317; 90 90); opaque = NO; layer = <CALayer: 0x2866f0>>",
"<UIButton: 0x287940; frame = (10000 3; 90 90); hidden = YES; opaque = NO; layer = <CALayer: 0x2879d0>>",
"<UIButton: 0x288b60; frame = (10000 3; 90 90); opaque = NO; layer = <CALayer: 0x288bf0>>",
"<UIButton: 0x289cd0; frame = (10000 3; 90 90); hidden = YES; opaque = NO; layer = <CALayer: 0x289d60>>",
"<UIButton: 0x28b010; frame = (10000 3; 90 90); opaque = NO; layer = <CALayer: 0x28b0a0>>",
"<UILabel: 0x28c2f0; frame = (411 5; 202 16); text = ' '; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x28c390>>"

当我将 WebView 和 ScrollView 放在我使用的屏幕上时

[self.parentView insertSubview:self.webView atIndex:0]; and 
[self.parentView insertSubview:self.quizView atIndex:0];

所以他们应该在背景的第一层。即便如此,他们的界限也不会触及录制按钮。滚动是否会做一些我不知道的事情,或者还有其他地方我应该看看?

4

1 回答 1

0

事实证明,按钮中使用的图像不包含在目标中。

出于某种原因,这并没有在运行 6.1 的模拟器中引起问题,但在其他模拟器中却出现了问题。由于未知原因,在设备或其他模拟器版本上运行时找不到图像时未生成错误。

于 2013-03-06T18:37:37.660 回答