iOS 使用系统的UITabBarController 修改展示的图片大小

1. 设置TabBarItem图片的大小

 1 - (void)configurationAppTabBarAndNavigationBar
 2 {
 3     // 选中的item普通状态图片的大小
 4     UIImage *normalImage = self.navigationController.tabBarController.tabBar.selectedItem.image;
 5     UIImage *tabNormalImage = [ToolObject createNewImageWithColor:normalImage multiple:1.1];
 6     tabNormalImage = [tabNormalImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
 7     [self.navigationController.tabBarController.tabBar.selectedItem setImage:tabNormalImage];
 8     // 选中的item选中撞他图片的大小
 9     UIImage *selectImage = self.navigationController.tabBarController.tabBar.selectedItem.selectedImage;
10     UIImage *tabSelectImage = [self createNewImageWithColor:selectImage multiple:1.1];
11     tabSelectImage = [tabSelectImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
12     [self.navigationController.tabBarController.tabBar.selectedItem setSelectedImage:tabSelectImage];
13     self.navigationController.tabBarController.tabBar.tintColor = [UIColor colorWithRed:0.11f green:0.61f blue:0.97f alpha:1.00f];
14     self.navigationController.tabBarController.tabBar.barTintColor = [UIColor colorWithRed:0.85f green:0.85f blue:0.85f alpha:1.00f];
15 }
2.图片放大或压缩处理 ,图片放大倍数 0 ~ 2 之间 ,0~1 缩小图片,1~2 放大图片 

 1 /**
 2  *  根据image 返回放大或缩小之后的图片
 3  *
 4  *  @param image    原始图片
 5  *  @param multiple 放大倍数 0 ~ 2 之间
 6  *
 7  *  @return 新的image
 8  */
 9 + (UIImage *) createNewImageWithColor:(UIImage *)image multiple:(CGFloat)multiple
10 {
11     CGFloat newMultiple = multiple;
12     if (multiple == 0) {
13         newMultiple = 1;
14     }
15     else if((fabs(multiple) > 0 && fabs(multiple) < 1) || (fabs(multiple)>1 && fabs(multiple)<2))
16     {
17         newMultiple = multiple;
18     }
19     else
20     {
21         newMultiple = 1;
22     }
23     CGFloat w = image.size.width*newMultiple;
24     CGFloat h = image.size.height*newMultiple;
25     CGFloat scale = [UIScreen mainScreen].scale;
26     UIImage *tempImage = nil;
27     CGRect imageFrame = CGRectMake(0, 0, w, h);
28     UIGraphicsBeginImageContextWithOptions(image.size, NO, scale);
29     [[UIBezierPath bezierPathWithRoundedRect:imageFrame cornerRadius:0] addClip];
30     [image drawInRect:imageFrame];
31     tempImage = UIGraphicsGetImageFromCurrentImageContext();
32     UIGraphicsEndImageContext();
33     return tempImage;
34 }

这样就可以修改选中状态和普通状态下的TabBarItem 图片的大小 ,是不是很简单呢,不足之处,还请大家多多指教

时间: 2024-12-14 17:49:14

iOS 使用系统的UITabBarController 修改展示的图片大小的相关文章

iOS的系统层级结构和相关的框架

一,概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch layer).理解iOS的系统构架,对我们日常开发有很大帮助.其实iOS是基于UNIX的,所以我们完全可以相信这个操作系统,要知道从系统的稳定性上来说它要比其他操作系统的产品好很多. 二, IOS操作系统的层次结构及相关框架 1.Core OS 核心层:包含Accelerate Framew

iOS开发项目篇—26修改UITabBar的系统设置

IOS开发项目篇—26修改UITabBar的系统设置 一.简单说明 1.在ios6和ios7两种系统中的现实效果 2.要求实现的效果(在ios6和ios7中基本一致) 二.UITabBar的设置和结构 1.尝试调整UITabBar 通过下面的方式,查看UITabBar内部的子控件 查看子控件继承自: 说明:UItabBarButton:继承自UIControl UIButton:继承自UIControl 打印查看每个子控件的内部结构 2.修改系统属性 注意:在ios6系统下 1 // 2 //

iOS调用系统发短信功能详解

iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信.2,程序内调用系统发短信.第二种的好处是用户发短信之后还可以回到app.这对app来说非常重要. 程序外调用系统发短信 这个方法其实很简单,直接调用openURL即可: [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://13888888888"]]; 程序内调用系统发短信 1)导入MessageUI.framework,并引入头文

iOS 调用系统电话

1,直接调用,结束后不返回自己的应用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]]; 2,使用WebView请求调用系统电话,结束后可以返回自身应用,合法 UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; [self.view addSubview:webView]; [webView l

iOS 捕获系统外异常

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 有时应用崩溃,而日志中的输出信息太少,无法定位问题,这是最头疼的事情,尤其很累的时侯,已经想不起来刚才改过什么了,这就叫做无耐. 工欲善其事,必先

linux系统mysql密码修改脚本

编写了一个适用于阿里云linux系统 mysql密码修改脚本,使用阿里云提供的一键安装包配置后,如果account.log文件删除,并且忘记mysql密码时,可以通过脚本来重置mysql密码. 附:一键环境安装包:http://help.aliyun.com/view/11108189_13435438.html?spm=5176.7224445.1997283057.5.RLNWqv 下载地址: gbk版:默认使用这个版本 wget http://jinxiang.oss-cn-hangzho

在装完Linux系统之后自己去修改Swap分区的大小(两种方法)

在装完Linux系统之后自己去修改Swap分区的大小(两种方法) 在安装完Linux系统后,swap分区太小怎么办,怎么可以扩大Swap分区呢?有两个办法,一个是从新建立swap分区,一个是增加swap分区.下面介绍这两种方法: 第一您必须有root权限,过程中一定要很小心,一不小心就破坏了整个硬盘的数据,执行下面的过程之前您需要三思而行,错误操作后的后果由执行者自己承担. 新建swap分区 1.以root身份进入控制台,输入 # swapoff -a          #停止交换分区 2. 用

[分享]运维分享一一阿里云linux系统mysql密码修改脚本

[分享]运维分享一一阿里云linux系统mysql密码修改脚本     大象吃豆子 级别: 小白 发帖 12 云币 27 加关注 写私信 只看楼主 更多操作楼主  发表于: 2014-09-30 编写了一个适用于阿里云linux系统 mysql密码修改脚本,使用阿里云提供的一键安装包配置后,如果account.log文件删除,并且忘记mysql密码时,可以通过脚本来重置mysql密码. 附:一键环境安装包:http://help.aliyun.com/view/11108189_13435438

Oracle EBS系统多层次修改密码

EBS系统密码分成四类,更改密码都需要遵照章程.规范,特别是做好备份. 1.操作系统用户,如root,ora,appl,grid等用户. [修改方法] 利用passwd这个OS命令去更改用户密码. 如: passwd root passwd ora passwd apps passwd grid [生产密码] pass1234 [注意事项] 无.如忘记root密码,可以用单用户模式登陆OS,以修改root密码. 2.数据库用户,如SYS,SYSTEM 数据库用户,可以用sqlplus或其他客户端