swift code|Swift让标签栏按钮UITabBarItem图片居中(没有文字)

更新时间:2020-04-05    来源:按钮特效    手机版     字体:

【www.bbyears.com--按钮特效】

对于标签栏(UITabBar),当tabBarItem不需要title只要image的时候,图片下方也是会占据一个空间的。
我们可以通过 tabBarItem.imageInsets 来设置偏移量,使得image图标居中显示。
(注意:top和bottom要设置成相反数,不然image的大小会一直改变。)
 
原文:Swift - 让标签栏按钮UITabBarItem图片居中(没有文字)

import UIKit
 
class MainTabViewController:UITabBarController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        //一共包含了两个视图
        let qqView = QQViewController()
        //qqView.title = ""
        let skypeView = SkypeViewController()
        //skypeView.title = ""
        
        //分别声明两个视图控制器
        let qq = UINavigationController(rootViewController:qqView)
        qq.tabBarItem.image = UIImage(named:"qq")
        qq.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
        
        let skype = UINavigationController(rootViewController:skypeView)
        skype.tabBarItem.image = UIImage(named:"skype")
        skype.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
        
        self.viewControllers = [qq,skype]
    }
}

UITabBarItem显示真实自定义的图片而非颜色填充

让TabBarItem 显示出我们设置的图片的真实样子,需要看以下设置方法在AppDelegate.h中,拿到所有的item然后统一设置成自定义的图片分别是选中和未选中,针对ios7以后


_tabBarController = [[UITabBarController alloc]init];
    [_tabBarController setViewControllers:@[recNav,feedNav,postNav,loginNav]];
    // 拿到 TabBar 在拿到想应的item
    UITabBar *tabBar = _tabBarController.tabBar;
    UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
    UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
    UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
    UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
    // 对item设置相应地图片
    item0.selectedImage = [[UIImage imageNamed:@"recognize-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
    item0.image = [[UIImage imageNamed:@"recognize"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
     
    item1.selectedImage = [[UIImage imageNamed:@"life-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
    item1.image = [[UIImage imageNamed:@"life"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
     
    item2.selectedImage = [[UIImage imageNamed:@"edit-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
    item2.image = [[UIImage imageNamed:@"edit"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
     
    item3.selectedImage = [[UIImage imageNamed:@"setting-1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];;
    item3.image = [[UIImage imageNamed:@"setting"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

通过以上代码设置就把4个item的图片设置好了当然也可以分别在对应的controller中进行相应地设置,不过建议统一设置修改起来比较省事,如果需要在item点击有很炫的动画或是其他样式,那就需要高度自定义才能实现

本文来源:http://www.bbyears.com/wangyetexiao/91988.html

热门标签

更多>>

本类排行