【问题标题】:How to use Image Sets to set Viewcontroller background image for different device?如何使用 Image Sets 为不同的设备设置 Viewcontroller 背景图像?
【发布时间】:2015-07-30 13:15:15
【问题描述】:

我在以前的应用程序中使用背景图像作为视图控制器。

那次我使用 If..Else Ladder 在 ViewDidload 上检测设备,并基于此为 View 控制器显示不同大小的背景图像。

现在我正在使用 Xcode 的 Images.XCAssets 功能。它再次适用于 LaunchImage、图标等,但不适用于具有视图控制器大小的背景图像。

有人帮我使用 Image XCAsset 来设置视图控制器的背景图片吗?

谢谢

【问题讨论】:

    标签: ios xcode uiimageview xcode6.3


    【解决方案1】:

    您可以使用它来为背景设置不同的图像大小,或者只是使用不同的图像。

    NSNumber *screenWidth = @([UIScreen mainScreen].bounds.size.width);
    NSString *imageName = [NSString stringWithFormat:@"name-%@w", screenWidth];
    UIImage *image = [UIImage imageNamed:imageName];
    

    您也可以查看this answer 了解更多信息。

    【讨论】:

    • 这是我在以前的应用程序中尝试过的类似的事情,我想知道我是否只能从 image.XCAsset 做到这一点
    • 在这种情况下,您必须自己指定不同的图像,因为它来自 XCAsset/universal。
    • 这看起来会在任何使用 iOS 9 多任务增强功能的应用程序上中断。您的代码假定具有硬编码名称的图像具有一定数量的背景大小。鉴于应用程序的宽度可以在 iOS 9 中更改,这看起来将无法正常工作。您链接的答案甚至说This might break if other widths are added in future
    • @Joze 我看到了这种情况,但是当我们为按钮使用背景图片时,我们只需设置 bold**@1x,@2x 和 @3xbold** 大小。我们不能对背景图像也这样做吗
    【解决方案2】:

    如果您需要为不同的设备提供不同的图像,您只需将它们添加到图像集中即可。

    这样你就有了经典的视网膜和视网膜 4(我猜是 iPhone 5 和 6,因为它是相同的图像比例,16/9)

    【讨论】:

    • 我试过了,但它没有为不同的设备拍摄正确的背景图片。仍然需要做一些编程来设置它。
    猜你喜欢
    • 2014-12-07
    • 2017-09-22
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多