放大镜放大倍率与白色文字&在Iphone上清除背景

时间:2009-08-11 22:32:52

标签: iphone text colors zoom readability

你们在我的最后一个问题上给了我很多帮助,我想我会给你另一个问题。我写了一个主题使用深蓝色玻璃背景和白色/灰色文本和标签的应用程序。我的应用程序中的文本域具有清晰的彩色背景和白色文本,一切都很好地显示。我唯一担心的是,当您在文本框中按住触摸以获得放大倍率放大镜时,当然白色文本显示在白色背景上......您无法阅读。有人对如何在这里实现可用的放大镜有任何想法吗?

3 个答案:

答案 0 :(得分:2)

不幸的是,我知道如何更改放大镜背景的唯一“公共”方式是通过设置textField.backgroundColor

我认为,由于您将背景设置为clearColor,因此放大镜默认为白色背景,因此唯一的方法是将backgroundColor设置为不清楚的颜色。

我也假设,因为你确实提到你设置了你的背景清楚,不清楚是不是一个选择。因此,我可以通过两种方式思考如何解决这个问题:

  1. 假设放大率lopue通过调用backgroundColor实现(而不是其他一些模糊的私有API方法)获得其背景颜色:覆盖backgroundColor方法并返回纯色。
  2. 创建自己的放大镜(可能不可行)

答案 1 :(得分:2)

我想出了一个简单的工作,达到了预期的效果。我也经历了制作自己的放大镜的全过程,但由于有关于制作自己的放大镜的明确文档(请参阅kiyoshi的答案),而另一种方法非常简单,我决定在此处记录。它基本上只是伪造清晰的背景,以便白色文本显示在放大镜中。我用于视图的背景看起来像深蓝色背景上的蓝色烟雾:

alt text http://img231.imageshack.us/img231/9835/beforestatex.jpg

我拍摄了模拟器的屏幕截图,文本字段可见,黑色背景,所以它会更好地显示:

alt text http://img193.imageshack.us/img193/9023/blackfieldx.jpg

然后我拍摄了截图,并在photoshop中将其设置为半透明,并叠加原始背景图像以找到文本字段在背景中出现的确切位置:

alt text http://img266.imageshack.us/img266/9493/transparencyfullscreenx.jpg

然后我将用作文本字段背景的确切像素复制到新的PNG中并保存并将其设置为背景图像:

alt text http://img41.imageshack.us/img41/3450/textboxback.png

forwardToField.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@“textboxback.png”]];

请记住,图像将作为放大镜内的图案重复...因此,如果您不想看到边缘,只需确保您的文字字段大于放大镜的高度和宽度。

之前:

alt text http://img196.imageshack.us/img196/2672/beforex.jpg

后:

alt text http://img23.imageshack.us/img23/2182/afterxd.jpg

我希望这有助于那里的人!

答案 2 :(得分:1)

实际上创建自己的循环非常可行。还没有尝试过苹果,所以不知道他们对它的感受。

基本思路是覆盖触摸,使用计时器查看用户触摸屏幕的时间。放大镜只是一个UIView,它将背后的视图作为图像抓取并放大它。

查看Craftymind here

中的这篇文章

这篇文章让你将整个图像缓存在后面,这对于渲染放大镜来说肯定更快,但是如果你有不断变化的东西(即textFields)我已经能够实时渲染loop图像了性能受到很大影响。