1、工具及版本
swift:swift2.2;
Xcode:7.2
2、效果图(做的比较简单,tab上没来得及准备图片,简陋,效果不是很好)
3、简单描述
windows的桌面版QQ,手机QQ ,微信....很多应用的下方都用tab做切换,除了使用UITabBarController可以实现这样的效果外,还可以自己用其他的方式实现,比如:下方用一个UIView,上面摆放上对应的按钮。在将按钮贴图,最后实现tap不同的按钮的对应的事件。这里,简单使用UITabBarController控件。
代码实现界面,没有用到storyboard。
4、功能简介
底部有2个tab,点击每个tab , 切换到对应的视图内容。
5、代码
新建一个swift工程。(个人比较喜欢iPhone5s,所以,设置的模拟器也为iPhone5s, 同时,我也取消了main.storyboard 的 “Use Auto Layout”(自动布局)和 “Use Size Classes”)
A、新建一个名为 chats的swift文件。文件内容如下:
import UIKit class ChatsController:UIViewController { override func viewDidLoad() { super.viewDidLoad(); /// 为了做区分,这里把背景设置为蓝色。 view.backgroundColor = UIColor.blueColor(); } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning(); } }B、同理,新建一个名为 mine 的swift文件。文件内容如下:
import UIKit class MineController:UIViewController { var tableView:UITableView!; override func viewDidLoad() { super.viewDidLoad(); /// 为做区分,这里把背景设置为绿色。 view.backgroundColor = UIColor.greenColor(); } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning(); } }C、我又自己新建了一个名为: CustomerController 的文件,代码如下:
import UIKit class CustormerController:UITabBarController { override func viewDidLoad() { view.backgroundColor = UIColor.clearColor(); /// 创建子tab。 let chats = ChatsController(); let mine = MineController(); /// 添加 viewControllers = [chats, mine]; UITabBar.appearance().tintColor = UIColor.greenColor(); let firstItem = tabBar.items![0]; firstItem.title = "chats"; /// 没来得及准备图,所以设置为了nil. firstItem.image = nil; let secondItem = tabBar.items![1]; secondItem.title = "mine"; secondItem.image = nil; } }D、打开 AppDelegate.swift 文件, 在下面的这个函数中添加下面的代码。或者用下面的代码替换原函数中得代码:
函数名为:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool函数体部分 代码:
/// ----- 新增的 代码 -- 开始 ----- let frame = UIScreen.mainScreen().bounds; window = UIWindow(frame:frame); let root = CustormerController(); window?.rootViewController = root; /// ----- 新增的代码 -- 结束 ---- return true接着,command + R,看看效果吧。