- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我刚刚在尝试为新的 iPad Retina 显示屏更新我的应用程序时注意到一件有趣的事情,Interface Builder 中的每个坐标仍然基于原始的 1024x768 分辨率。
我的意思是,如果我有一张 2048x1536 的图像以使其适合显示器的整个屏幕,我需要将其大小设置为 1024x768 而不是 2048x1536。
我只是好奇这是故意的吗?我可以将 Interface Builder 中的坐标系切换为特定于 Retina 吗?这有点烦人,因为我的一些图形在宽度或高度上不是原始图形的 2 倍。我似乎无法设置 1/2 坐标数,例如 1.5,它可以在 Interface Builder 中设置为 1 或 2。
此时我是否应该只用代码进行界面设计而忘记界面构建器?使我的图形在两个方向上正好保持 2 倍?还是只是忍受它?
最佳答案
iOS 上的界面基于点,而不是像素。图片必须是原始尺寸的 2 倍。
Points Versus Pixels In iOS there is a distinction between the coordinates you specify in your drawing code and the pixels of the underlying device. When using native drawing technologies such as Quartz, UIKit, and Core Animation, you specify coordinate values using a logical coordinate space, which measures distances in points. This logical coordinate system is decoupled from the device coordinate space used by the system frameworks to manage the pixels on the screen. The system automatically maps points in the logical coordinate space to pixels in the device coordinate space, but this mapping is not always one-to-one. This behavior leads to an important fact that you should always remember:
一个点不一定对应屏幕上的一个像素。 使用点(和逻辑坐标系)的目的是 提供与设备无关的一致大小的输出。这 点的实际大小无关紧要。积分的目的是提供 一个相对一致的比例,您可以在代码中使用它来指定 View 和渲染内容的大小和位置。积分是多少 实际上映射到像素是由系统处理的细节 构架。例如,在具有高分辨率屏幕的设备上, 一点宽的线实际上可能会导致两点宽的线 屏幕上的像素宽。结果是,如果你绘制相同的 两个类似设备上的内容,其中只有一个具有 高分辨率屏幕,内容看起来大小差不多 在两种设备上。
在你自己的绘图代码中,你大部分时间都使用点,但也有 有时您可能需要知道点是如何映射到像素的。 例如,在高分辨率屏幕上,您可能希望使用 额外的像素以在您的内容中提供额外的细节,或者您可能 只是想以微妙的方式调整内容的位置或大小。 在 iOS 4 及更高版本中,UIScreen、UIView、UIImage 和 CALayer 类 公开一个比例因子,告诉你点之间的关系 和该特定对象的像素。在 iOS 4 之前,这个比例因子 假定为 1.0,但在 iOS 4 及更高版本中它可能是 1.0 或 2.0,取决于底层设备的分辨率。将来,其他比例因子也可能成为可能。
关于objective-c - iPad Retina 显示器的 XCode 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10078444/
我没有 Retina 设备,但我一直在网上看到这个讨论。我已阅读有关为配备 Retina 显示屏的设备提供 2 倍图像尺寸的解决方案,以确保位图不会变得模糊。 但是,我不明白这是如何工作的。首先,正如
根据我的研究,我了解到您想将图像的大小加倍以使其在视网膜显示器上看起来更清晰。 对于尺寸为500X500 px的图片,我想将它们存储为1000X1000。 如有错误请指正 现在的问题是,通过使用 Go
目前,我的应用程序中的所有 UIImageView 都设置为 scaleToFill 模式,仅使用一个视网膜图像而不设置任何非视网膜图像。我想在非视网膜显示器上,额外的分辨率将自行丢失。 问题:这种方
我有以下媒体查询,以选择 iPad 视网膜和更小的显示器。 @media only screen and (min-device-width : 768px) and (max-device-widt
在深入研究我的下一个项目之前,我正在寻求建议。我想支持 iOS 现在支持的所有各种分辨率(视网膜、非视网膜 iPhone 和所有 3 款 iPad)。 开发人员完成这项工作最常用的方法是什么?我看到过
有没有一种方法可以在 Windows 上模拟 Retina 显示屏来测试 HiDPI 显示屏(例如 Retina)的网站? 我在标准的 24"1920x1080 显示器上运行 Windows。昨晚我在
我遇到了麻烦。我正在使用带有 UIKit 的 cocos2d。 Cocos2d版本为1.0.1。 我已经按照文档中的建议将平铺 map 添加到项目中: http://www.cocos2d-iphon
有人可以告诉我 iPhone/iPad 和 iPhone(Retina)/iPad(Retina) 的理想图像分辨率是多少吗?我从苹果网站和维基百科上获取了这些测量值。见下文: 普通 iPhone 4
这是我第一次开发应用程序。 根据 Apple iOS 人机界面指南,UIBarButtonItem 图像尺寸约为 20 x 20 和约 40 x 40。 我知道20x20是针对iPhone4之前版本的
我正在使用 Assets 目录来管理我应用程序的所有图像,并且我“正常”加载这些图像 [UIImage imageNamed:@"my-image"]; 我想做的是从 Assets 目录加载图像的非视
这可能是一个小众问题,实际上更像是一个小问题,但是: 我可以让 Xcode 自动构建到 iPhone Retina 模拟器和 iPad 非 Retina 模拟器吗? 即使使用 27"iMac,Reti
我有一个问题可能听起来很奇怪,但作为一个新手,我猜 no question 是一个愚蠢的问题...... 我是否需要为所有四台设备使用单独的 Storyboard? 现在我有两个 Storyboard
我是 opengl es 2.0 开发的新手。我从屏幕截图中获得的 UIImage 在非视网膜设备(iphone 4 和 ipad)上看起来不错,但是当我从视网膜设备上获得屏幕截图时,它似乎放大了。这
我正在使用 XCode 4.5 版。对于每个 Xib,我可以选择大小为“Retina 3.5 全屏”或“Retina 4 全屏”。 我的疑问是:如果我选择 Retina 4 全屏,我的应用程序能否在旧
我正在使用最新的 xCode 5,我正在尝试为我的通用应用程序设置启动图像。当我选择 Launch images for iPhone 时,一切正常。但是现在,当我尝试为 iPad 选择启动图像时,x
今天,我更新了Xcode4.5,并在我的电脑上安装了Xcode4.3,安装后我打开Xcode4.5,当我想运行我的应用程序时,只有IOS Device,iPad 6.0模拟器和 iPhone 6.0
我正在使用模拟器为 iPhone 5 准备我的应用程序,我发现了一个奇怪的问题,在我的一个 View 中,我的几个按钮在 iPhone(Retina 4 英寸) 模拟器,但在 iPhone(Retin
我们的目标是模拟开发人员可以使用原生 iOS 应用执行的操作:即,使用基于单位的单一布局来适应 Retina 显示屏 (640x960) 和非 Retina 显示屏 (320x480)。 所有 iOS
这是我第一次提问,因为我是新来的。非常感谢您的回答!感谢您抽出时间。 使用Xcode 5.1.1 这是我的问题,在模拟器或实际设备上测试时,结果不同。请参阅食物图像上所附的屏幕截图。当我在模拟器iPh
我更新了一个旧应用程序,修复了一个小错误。该应用程序是使用 Xcode 5.1 编译的。(无法使用 Assets 目录或添加 iPhone 6 和 6 Plus 图像。)但是,当我尝试提交它进行审核时
我是一名优秀的程序员,十分优秀!