ios - 将对象放置在标准分辨率无法访问的视网膜像素位置?

标签 ios iphone retina-display

我在 xcode 中为屏幕上的某个位置设置动画。

目前它每 0.1 秒移动“1”像素。

这意味着它在视网膜显示器上不是每 .1 秒移动 1 个像素,而是每 .1 秒移动 2 个像素。

我希望它在视网膜显示器上每 0.1 秒移动 1 个像素。有什么办法吗?

有什么方法可以将对象位置设置为视网膜位置或其他什么?

最佳答案

您想以像素为单位移动。 iOS 中的所有坐标均以点为单位。所以你需要将你的点转换为像素。这可以通过以下方式完成:

CGFloat screenScale = [UIScreen mainScreen].scale;
CGFloat ratio = 1.0 / screenScale;

使用 ratio 增加动画。

在非视网膜设备上,ratio 将为 1 点。在当前的 Retina 设备上,ratio 将为 0.5 点。

在制作动画时,将 x 和 y 坐标移动 ratio 点,每次移动一个像素。

关于ios - 将对象放置在标准分辨率无法访问的视网膜像素位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060449/

相关文章:

iphone - AVAudioRecorder:峰值和平均功率

iphone - MPMoviePlayerViewController 在后台运行并使用远程控制

ios - Xcode 4.3 - 标准/Retina 导航栏图标

ios - 如何使用平移手势限制对象可以移动到另一个 View 边界的区域?

ios - UIPageViewController 显示黑屏

ios - CGPathContainsPoint 在 iOS 12 中损坏了吗?是否有解决方法?

iOS swift : Custom interactive transition

iphone - 如何阻止 iOS PinchGesture 选择按钮?

使用 Cordova (Phonegap) 的 iPhone 4 可缩放 View

iphone - UIGestureRecognizerStateBegan 在 iOS 6 中调用两次