之前也使用Swift编写过程序,但是由于是多人开发,我没有从头搭建,而且之前写的项目也是多使用oc的库。我就打算从头抓包写一个纯Swift的APP。我打算先写一个简单的APP,熟练之后在写比较复杂的APP。具体代码之后会传到我的github上面。
在搭建框架的时候发现了这个swift编写的tabbar控制器。用起来感觉不错。他可以高度自定义。具体效果可以看官方文档。
但是他还是有一些不足的。这是暂时不支持的功能
/* * ESTabBarItem继承自UITabBarItem,目的是为ESTabBarItemContentView提供UITabBarItem属性的设置。 * 目前支持大多常用的属性,例如image, selectedImage, title, tag 等。 * * Unsupport properties: * MARK: UIBarItem properties * 1. var isEnabled: Bool * 2. var landscapeImagePhone: UIImage? * 3. var imageInsets: UIEdgeInsets * 4. var landscapeImagePhoneInsets: UIEdgeInsets * 5. func setTitleTextAttributes(_ attributes: [String : Any]?, for state: UIControlState) * 6. func titleTextAttributes(for state: UIControlState) -> [String : Any]? * MARK: UITabBarItem properties * 7. var titlePositionAdjustment: UIOffset * 8. func setBadgeTextAttributes(_ textAttributes: [String : Any]?, for state: UIControlState) * 9. func badgeTextAttributes(for state: UIControlState) -> [String : Any]? */
如果你需要上面的功能,就可以停止往下看了。
你既然看到了这里就说明你需要使用这个库。现把使用方法列出。
1. 系统原生(通过tintColor修改选中颜色)
let tabBarController = ESTabBarController() let v1 = HomeViewController() let v2 = HomeViewController() let v3 = HomeViewController() let v4 = HomeViewController() let v5 = HomeViewController() /// MARK: 使用原生 v1.tabBarItem = UITabBarItem.init(title: "", image: UIImage(named: "btn_home"), selectedImage: UIImage(named: "btn_home_highlight")) v2.tabBarItem = UITabBarItem.init(title: "", image: UIImage(named: "btn_category"), selectedImage: UIImage(named: "btn_category_highlight")) v3.tabBarItem = UITabBarItem.init(title: "", image: UIImage(named: "btn_rank"), selectedImage: UIImage(named: "btn_rank_highlight")) v4.tabBarItem = UITabBarItem.init(title: "", image: UIImage(named: "btn_random"), selectedImage: UIImage(named: "btn_random_highlight")) v5.tabBarItem = UITabBarItem.init(title: "", image: UIImage(named: "btn_favourite"), selectedImage: UIImage(named: "btn_favourite_highlight"))
UITabBar.appearance().tintColor = UIColor.red tabBarController.tabBar.shadowImage = nil tabBarController.viewControllers = [v1, v2, v3, v4, v5]
// 不需要导航栏的话 直接 rootviewcontroller = tabBarController
let navigationController = UINavigationController.init(rootViewController: tabBarController)
APP_DELEGATE?.window?.rootViewController = navigationController
2. ESTabBarController仿系统原生(设置tintColor没反应)
let tabBarController = ESTabBarController() let v1 = HomeViewController() let v2 = HomeViewController() let v3 = HomeViewController() let v4 = HomeViewController() let v5 = HomeViewController() /// MARK: 仿原生 设置 但是不能修改选