ios开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)

1,tabBarItem图片的推荐尺寸和最大支持尺寸

下面是标签栏(UITabBar)中tab按钮图标分别在1x、2x、3x下不会压缩变形的尺寸:

@1x : 推荐 25 x 25   (最大: 48 x 32)
@2x : 推荐 50 x 50   (最大: 96 x 64)
@3x : 推荐 75 x 75   (最大: 144 x 96)

 

下面是在2x下,左边使用50 x 50的图片,右边使用64 x 64的图片,大家可以比较下:

  开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)-swift navigationitem">   

import UIKit
 
class MainTabViewController:UITabBarController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        //一共包含了两个视图
        let qqView = View1ViewController()
        qqView.title = "QQ"
        let androidView = View1ViewController()
        androidView.title = "skype"
         
        //分别声明两个视图控制器
        let qq = UINavigationController(rootViewController:qqView)
        qq.tabBarItem.image = UIImage(named:"qq")
        let android = UINavigationController(rootViewController:androidView)
        android.tabBarItem.image = UIImage(named:"skype")
        self.viewControllers = [qq,android]
              
        //默认选中的是qq视图
        self.selectedIndex = 0
    }
}

2,修改图片和文字的颜色 

默认未选中标签的图片和文字是灰色的,选中的是蓝色的,下面修改成橙色:
(1)图片和文字同时改变

//图片文字一起变色
self.tabBar.tintColor = UIColor.orangeColor()

(2)只改变文字颜色

//改变文字颜色
UITabBarItem.appearance().setTitleTextAttributes(
    [NSForegroundColorAttributeName: UIColor.grayColor()], forState:.Normal)
UITabBarItem.appearance().setTitleTextAttributes(
    [NSForegroundColorAttributeName: UIColor.orangeColor()], forState:.Selected)

(3)只改变图片颜色

self.tabBar.tintColor = UIColor.orangeColor()
//文字颜色还原
UITabBarItem.appearance().setTitleTextAttributes(
    [NSForegroundColorAttributeName: self.view.tintColor], forState:.Selected)

3,选中时、不选中时使用不同图片
默认标签选中、不选中都使用的是同一个图片,只是颜色不同。我们也可使用两张不同图片表示两种状态。

qq.tabBarItem = UITabBarItem(title: "QQ", image: UIImage(named: "qq"),
    selectedImage: UIImage(named: "qq_active"))
 
android.tabBarItem = UITabBarItem(title: "Android", image: UIImage(named: "android"),
    selectedImage: UIImage(named: "android_active"))

4,使用图片的原始颜色

默认不管原图是什么颜色,渲染器都会将渲染成单一颜色,虽说符合现在扁平化的趋势,但有时我们还是想要使用图片原来的样子。
如下样例,标签选中时使用不着色的原始图片(未选中仍然渲染成灰色,当然也可以使用原始图片)

qq.tabBarItem =  UITabBarItem(title: "QQ", image: UIImage(named: "qq_color"),
    selectedImage: UIImage(named: "qq_color")?.imageWithRenderingMode(.AlwaysOriginal))
 
android.tabBarItem =  UITabBarItem(title: "Android", image: UIImage(named: "android_color"),
    selectedImage: UIImage(named: "android_color")?.imageWithRenderingMode(.AlwaysOriginal))

时间: 2024-09-22 05:37:50

ios开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)的相关文章

ios开发之Swift UIPasteboard剪贴板的使用详解(复制、粘贴文字和图片)

UITextField.UITextView组件系统原生就支持文字的复制,但有时我们需要让其他的一些组件也能实现复制功能,比如点击复制UILabel上的文字.UIImageView中的图片.UITableView里单元格的内容.或者点击按钮把文字或图片自动复制到粘贴板中等等. 这些我们借助 UIPasteboard 就可以实现. 一,将内容写入到剪贴板中 1,复制字符串 UIPasteboard.generalPasteboard().string = "欢迎访问 hangge.com"

ios开发之Swift - 点击状态栏使tableView返回顶部(附:状态栏点击事件响应)

1,当页面上只有一个scrollView,点击状态栏scrollView会自动滚动到顶部   比如页面上只有一个表格(UITableView),当点击顶部状态条后,表格会像QQ.微信联系人列表那样回到最上面.   这个是iOS系统默认就有的.   开发之Swift - 点击状态栏使tableView返回顶部(附:状态栏点击事件响应)-swift ios开发教程"> 2,当页面上有多个scrollView,点击状态栏时,视图都不会滚动 这时我们需要把不需要滚动的 scrollView 的 s

ios开发之Swift使用AirPrint进行打印

使用 AirPrint 可以轻松地从 iOS 和 OS X app 中传输无损照片和文稿打印.当然,打印机也要支持AirPrint 技术才行.下面通过样例演示如何在App中使用 Airprint进行打印.    1,打印机模拟器(Printer Simulator)下载 如果没有支持AirPrint的打印机也没关系,苹果提供了个虚拟打印机,地址:https://developer.apple.com/downloads (1)下载里面的 Hardware IO Tools 开发之Swift使用A

ios开发之Swift闭包使用示例

什么是闭包? 闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量). "闭包" 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域). 在Swift中,Swift的闭包跟OC中的Block很像,OC中的Block类似于匿名函数,闭包用来定义函数. 无论是OC中的Block还是Swift中的闭

ios开发之Swift二维码QRCode的读取(从图片读取 ,或通过摄像头扫描)

1,直接读取图片中的二维码 使用 CIDetector 可以很方便的检测并读取二维码.下面是一个从 UIImage 中读取二维码的样例,我们要把图片上所有的二维码信息都打印出来. 开发之Swift二维码QRCode的读取(从图片读取 ,或通过摄像头扫描)-qrcode 读取二维码">    代码如下 复制代码 import UIKit   class ViewController: UIViewController {       override func viewDidLoad() {

ios开发之Swift使用AVFoundation实现条形码扫描(附:拉近镜头改善读取)

1,条形码(一维码)的扫描读取 原来写过一篇文章,介绍如何使用摄像头扫描读取二维码:Swift - 二维码QRCode的读取(从图片读取 ,或通过摄像头扫描)要通过摄像头读取条形码,只需要将原来二维码读取代码中 metadataObjectTypes 做如下修改即可: self.output.metadataObjectTypes = [AVMetadataObjectTypeEAN13Code,         AVMetadataObjectTypeEAN8Code, AVMetadataO

ios开发之Swift自动优化照片调整善图像质量

Core Image能通过分析图片的各个属性,人脸的区域等进行自动优化图片.我们只需要调用autoAdjustmentFiltersWithOptions这个API方法获取各个自动增强滤镜来优化图片即可.不管是人物照片还是风景照均可增强效果. (以前另外还有个叫autoAdjustmentFilters的方法,现已废除.)   1,具体使用的滤镜如下: (1)CIRedEyeCorrection:修复因相机的闪光灯导致的各种红眼 (2)CIFaceBalance:调整肤色 (3)CIVibran

ios开发之Swift实现抠图,及图片合成功能的实现

大家肯定都用过PS进行抠图(扣图),而在Swift中,使用代码也可以实现抠图功能. 1,要把一个人物或物体从背景中抠出来,通常有两种办法: (1)使用CoreImage色域:适合纯色背景(或者背景色相对单一,色差不会太大),抠图精准   (2)使用openCv边缘检测:复杂背景情况也适用,默认抠图不够精确       2,下面使用第一种方案把下面的小猫抠出来,放置到雪地背景上.   开发之Swift实现抠图,及图片合成功能的实现-swift 实现分享功能">        3,如何使用Co

ios开发之Swift使用CIFilter生成二维码图片(QRCode)

CIFilter提供了各种各样的滤镜,其中CIQRCodeGenerator可以用来生成二维码.下面通过一个样例演示如何将字符串(链接也是字符串)生成二维码图片,同时支持在二维码中间放置个性化图标.   效果图如下: 开发之Swift使用CIFilter生成二维码图片(QRCode)-php qrcode生成二维码">    代码如下 复制代码 import UIKit   class ViewController: UIViewController {       override fu