iOS修改UIImage图片尺寸大小逻辑分辨率

2019-02-01  本文已影响0人  划水型派大星

iOS修改UIImage图片尺寸大小逻辑分辨率


之前遇到的问题,给UITabbar item设置图片,然而素材的图片分辨率是87*87,填满了整个tabbar item的区域,很难看,又要考虑适配XS Max的三倍问题。 解决方法如下: 通过设置scale使生成的图片尺寸是逻辑分辨率pt单位,不用操心二倍三倍的问题。

+ (UIImage *)imageResize:(UIImage*)img andResizeTo:(CGSize)newSize {
    CGFloat scale = [[UIScreen mainScreen]scale];
    //UIGraphicsBeginImageContext(newSize);
    UIGraphicsBeginImageContextWithOptions(newSize, NO, scale);
    [img drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

这样一来就能使tabbar item的图标始终是25pt*25pt,恰到好处。

childController.tabBarItem.selectedImage = [[SmallTools imageResize:[UIImage imageNamed:selected] andResizeTo:CGSizeMake(25, 25)] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
image

另外关于上图中间图标的动画效果实现可参考此文章

iOS UITabbar图标点击动画效果实现

上一篇 下一篇

猜你喜欢

热点阅读