爱程序网

关于真机ios图标失真的问题以及图标的理解

来源: 阅读:

问题概述:iphone5s ,图标像素是30*30,在模拟器上没有问题,真机显示时图标的边缘会有锯齿状的失真效果出现。

当图片像素重置为60*60时,真机显示没有问题,但是就是图标过大,遂:

采用此方法是虽然可以缩放调整其大小但是仍然会存在失真效果

    CGSize size= CGSizeMake(30, 30);
    UIGraphicsBeginImageContext(size);
    [self.imageView.image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

最终找到了以前的demo可以无损缩放

    //缩小图片
    self.imageView.transform=CGAffineTransformScale(self.imageView.transform, 0.5, 0.5);

至此问题解决。

首先是分辨率的问题,一开始就不是高清分辨率,所以肯定是会失真的,以下是官方的一下资料

图标和图像大小

其次就是无损缩放的问题了。


 

其实以上问题都是对图标的认知出现错误导致的,其实锯齿状出现的原因是图标本身像素不符合要求,苹果本身对图标是有@2x,@3x这样的要求的,因为苹果手机有好几个机型,为了适应机型并且最好的显示需要根据图标来调整显示的倍率,比如30*30像素的图标是显示的大小合适,那么就需要相同的图60*60和90*90,但是命名的时候需要这样name.png,name@2x.png,name@3x.png,命名好之后导入才有效果(导入之后会只显示name,原图可以不导入只要最高的就可以了),如果导入之后在这样命名那么@2x/@3x就会成为名字的一部分就没意义了,这样在不同的机型上即保证了大小的相同又保证了清晰度。

也可以直接导入之后根据图片的像素进行划分

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助