在iOS7中,文本放大镜不适用于应用范围

时间:2013-09-26 22:10:02

标签: uitextfield uitextview ios7 magnify

我的一个应用程序中遇到了一个相当恼人的错误。在iOS7中,当我按住UITextView或UITextField调出放大镜时,放大区域内没有任何内容。这个问题是应用程序范围广泛,唯一出现在圆圈区域的元素是键盘本身(当我将手指向下拖动到它的顶部时)。

我已经尝试了从只有一个UITextView的视图控制器到UIWebView的所有内容,问题是应用程序范围广。

放大镜在iOS6设备和iOS7模拟器上按预期工作。但是我没有在运行iOS7的任何设备上测试它。

非常感谢任何帮助。

enter image description here

5 个答案:

答案 0 :(得分:14)

我通过在appDelegate中将主窗口的windowLevel设置为1.2的浮点值来修复此问题:

self.window.windowLevel = 1.2;

这是iOS7的一种破解,将主窗口的默认级别提升为UIWindowLevelNormal(1.0)为1.2

答案 1 :(得分:6)

一次使用多个窗口时出现同样的问题。为每个窗口设置正确的.windowLevel值以进行正确的z排序解决了这个问题。

答案 2 :(得分:2)

我们遇到类似的问题,我们在现有窗口的顶部呈现UIWindow,如果它们具有相同的windowLevel,则放大镜显示添加的第一个窗口。

示例:

[applicationWindow(windowLevel = 0]< ------------- [customWindow(windowLevel = 0)]

customWindow在applicationWindow之上呈现就好了......但是在自定义窗口的文本字段上显示的放大镜会呈现applicationWindow的内容。

[applicationWindow(windowLevel = 1]< ------------- [customWindow(windowLevel = 1)]

结果相同。 customWindow在applicationWindow上呈现就好了......但是在自定义窗口的文本字段上显示的放大镜会呈现applicationWindow的内容。

[applicationWindow(windowLevel = 0]< ------------- [customWindow(windowLevel = 1.01)]

customWindow正确渲染,放大镜内容正确呈现。

我们解决它的方法是在将customWindow作为keyWindow之前,将customWindow.windowLevel初始化为UIApplication sharedApplication] .keyWindow.windowLevel + .01(但这可能是任何东西)。谢谢@ user2940692,您的回答应该是被接受的答案...如果您需要,我会将我们的案例作为问题发布,您可以回答它,我会给您信用。

答案 3 :(得分:0)

我有同样的问题。我发现在Project - >目标 - >一般在“主界面”中列出了一个笔尖。一旦我删除它,它工作正常。我也试过设置窗口级别,但是它起作用了,但它只是为我掩盖了真正的问题。

答案 4 :(得分:0)

如果您没有从上述解决方案中获得任何帮助,我发现了另一个可能导致此问题发生的问题。我在UIWindow中有一个nib对象,它在AppDelegate中初始化。该视图的背景颜色为[UIColor whiteColor]。将其设置为[UIColor clearColor]将解决此问题。