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

1
2
3
4
5
6
7
8
9
+ (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,恰到好处。

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

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

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


 评论

 无法加载Disqus评论系统,请确保您的网络能够正常访问。

©2019 派大星星星星

本站使用 Material X 作为主题 , 总访问量为 次 。