UIIMageView 加载了错误的图像
Wrong image being loaded by UIIMageView
我有这个 iPhone 应用程序针对 iOS 7.
我在 .xcassets
上创建了一个名为 mainImage
的条目,该条目特定于 iPhone 设备。所以 xcode 向我展示了 4 个我必须用图像填充的位置。具有这些图像:1x
、2x
、Retina 4 2x
和 3x
.
我已按顺序在每个插槽中填充以下图片:
1x
= 320 x 480 像素图像
2x
= 750 x 1334 像素图像
Retina 4 2x
= 640 x 960 像素图像
3x
= 1242 x 2208 像素图像
然后我在 Storyboard 上有一个 viewController 调整为 iPhone 6 大小,并且那里的 imageView 调整为仅加载 "mainImage".
那里显示的图像 iPhone 4 2x
被拉伸了,而不是正确的图像。它应该显示 750x1334 图像。
如果使用 "mainImage" 调整 imageView,难道它不应该加载 viewController 大小的正确图像吗?
我 运行 在 iPhone 6 上显示的图像确实是 iPhone 4 图像拉伸后的图像。
要解决这个问题吗?
不是这样的。您可以为不同的屏幕密度设置单独的图像,而不是为不同的屏幕尺寸设置单独的图像。您必须自己为每个屏幕尺寸和 select 图片添加一个单独的条目。启动图像是唯一可以自动处理不同屏幕尺寸的资产。
How to specify size for iPhone 6/7 customised edge-to-edge image?
每个 iDevice 都遵循以下准则:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1
事实上 xcassets 上还有一个 limitation/bug,除了不可能将其本地化为不同的语言之外,那就是能够加载不同的图像或更好地正确 iPhone 6。 Apple 没有意识到 xcassets 现在的工作方式不会加载正确的图像,如果你关心使用全屏图像。
解决方案是不使用 xcassets,创建您需要的图像和 class 根据屏幕调用正确的图像 size/needs。
我有这个 iPhone 应用程序针对 iOS 7.
我在 .xcassets
上创建了一个名为 mainImage
的条目,该条目特定于 iPhone 设备。所以 xcode 向我展示了 4 个我必须用图像填充的位置。具有这些图像:1x
、2x
、Retina 4 2x
和 3x
.
我已按顺序在每个插槽中填充以下图片:
1x
= 320 x 480 像素图像2x
= 750 x 1334 像素图像Retina 4 2x
= 640 x 960 像素图像3x
= 1242 x 2208 像素图像
然后我在 Storyboard 上有一个 viewController 调整为 iPhone 6 大小,并且那里的 imageView 调整为仅加载 "mainImage".
那里显示的图像 iPhone 4 2x
被拉伸了,而不是正确的图像。它应该显示 750x1334 图像。
如果使用 "mainImage" 调整 imageView,难道它不应该加载 viewController 大小的正确图像吗?
我 运行 在 iPhone 6 上显示的图像确实是 iPhone 4 图像拉伸后的图像。
要解决这个问题吗?
不是这样的。您可以为不同的屏幕密度设置单独的图像,而不是为不同的屏幕尺寸设置单独的图像。您必须自己为每个屏幕尺寸和 select 图片添加一个单独的条目。启动图像是唯一可以自动处理不同屏幕尺寸的资产。
How to specify size for iPhone 6/7 customised edge-to-edge image?
每个 iDevice 都遵循以下准则: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1
事实上 xcassets 上还有一个 limitation/bug,除了不可能将其本地化为不同的语言之外,那就是能够加载不同的图像或更好地正确 iPhone 6。 Apple 没有意识到 xcassets 现在的工作方式不会加载正确的图像,如果你关心使用全屏图像。
解决方案是不使用 xcassets,创建您需要的图像和 class 根据屏幕调用正确的图像 size/needs。