iOS,由于图片原因导致tabbar图片点击发生zoom的现象

代码:
[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"tab_pressed_home_icon"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab_home_icon"]];

tabBarItem1.imageInsets = UIEdgeInsetsMake(8, 0, -2, 0);


点击之前:




点击之后:


解决方案及原因:
这首先不是iOS语言的问题:
原因是美术给的图并不满足现有环境的使用

因为他的icon有retina和非retina两种的图片。我们的icon没有。
如果你需要正确展示图片,你需要通过屏幕scale的这个属性来支持你重绘图片

(UIImage *)thumbnailImageSize:(CGSize)size fromImage:(UIImage *)image { 
   
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES && [[UIScreen mainScreen] scale] == 3.00) {
        _scale 
= 3.00; 
   
} else if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES && [[UIScreen mainScreen] scale] == 2.00) { 
        _scale 
= 2.00; 
   
} else 
        _scale 
= 1.00;

   
UIGraphicsBeginImageContextWithOptions(size, NO, _scale); 
   
[image drawInRect:CGRectMake(0, 0, size.width, size.height)]; 
   
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
   
UIGraphicsEndImageContext(); 
   
return newImage; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值