加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Xcode 6无法为iPhone 6模拟器显示正确的图像尺寸

发布时间:2020-12-14 19:08:11 所属栏目:百科 来源:网络整理
导读:我一直在关注使用 Image.xcassets在不同设备上显示全屏图像的本教程 https://www.youtube.com/watch?v=_36Y6rDcKP0.因为可以清楚地显示placeHolders,所以创建启动项非常容易.但是,我的问题是在创建新的图像集时如下. 我在每个地方放置的图像如下: 1x bg.png
我一直在关注使用 Image.xcassets在不同设备上显示全屏图像的本教程 https://www.youtube.com/watch?v=_36Y6rDcKP0.因为可以清楚地显示placeHolders,所以创建启动项非常容易.但是,我的问题是在创建新的图像集时如下.

我在每个地方放置的图像如下:

> 1x bg.png(320 x 640)
> 2x bg@2x.png(640 x 960)
> Retina 4 2x bg-568h@2x.png(640 x 1136)
> 3x bg@3x.png(2208 x 1242)

我的问题是,当我运行iPhone 6模拟器时,它会加载bg@2x.png(640 x 960)图像而不是iPhone 6的bg-568h@2x.png(640 x 1136)图像? (图像被拉伸).所有其他图像尺寸对于每个设备都是正确的.在视频教程中,iPhone 6模拟器确实加载了bg-568h@2x.png(640 x 1136).我究竟做错了什么 ??

解决方法

经过大量的游戏,我相信这是一个错误.运行iPhone 6时,Image.xcassets应加载568h@2x.png(640 x 1136). Xcode应该将其扩展到750 X 1334.但它不会,它总是加载iPhone 4(320 x 640)图像.为了解决这个问题,我创建了两组Image.xcassets(Device Specific),如下所示:

- backGround.xcassets
   - 1x  (320 x 640)
   - 2x  (640 x 960)
   - 3x  (2208 x 1242)
   - //(uncheck 4- Retina)


   - backGroundRetina.xcassets
   - 2x  (640 x 1136)
   - //(only iPhone checked)

在(void)viewDidLoad {

if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone ){

    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
    if( screenHeight < screenWidth ){
        screenHeight = screenWidth;
    }

   if ( screenHeight > 480 && screenHeight < 736 ){
        NSLog(@"RUNNING IPHONE 5 or 6");
          [_backGround setImage:[UIImage imageNamed:@"backGroundRetina"]];


   } else  NSLog(@"THIS IS NOT IPHONE 6");

      //  [_backGround setImage:[UIImage imageNamed:@"backGround"]]; will be called


}

我确定还有其他方法可以解决这个问题,但这对我有用,我希望它可以帮助其他人坚持同样的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读