[纯代码]Swift 2.0 开发微博 基本准备

前端之家收集整理的这篇文章主要介绍了[纯代码]Swift 2.0 开发微博 基本准备前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_403_1@开发环境:Xcode 7 Beta 4

@H_403_1@

@H_403_1@1.1: 部署初步架构

@H_403_1@

@H_403_1@

@H_403_1@1.2 设置根控制器(AppDelegate.swift)

  1. <span style="font-family:Microsoft YaHei;"> func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  2. // Override point for customization after application launch.
  3. window = UIWindow (frame: UIScreen.mainScreen().bounds )
  4. window?.backgroundColor = UIColor.whiteColor()
  5. window?.rootViewController = MainUITabBarController()
  6. window?.makeKeyAndVisible()
  7. return true
  8. }
  9. </span>
@H_403_1@

@H_403_1@1.3 自定义TarbBar

  1. <span style="font-family:Microsoft YaHei;">import UIKit
  2.  
  3. class MainUITabBarController: UITabBarController {
  4.  
  5. override func viewDidLoad() {
  6. super.viewDidLoad()
  7.  
  8. // Do any additional setup after loading the view.
  9. addChildViewControllers()
  10. setComposeButton()
  11. }
  12.  
  13.  
  14. ///设置Button
  15. private func setComposeButton() {
  16. //计算Button 高度
  17. let w = tabBar.bounds.width / CGFloat (viewControllers!.count)
  18. // Button 已有宽和高的Rect
  19. let rect = CGRect(x: 0,y: 0,width: w,height: tabBar.bounds.height)
  20. //使用偏移 设置Button位置
  21. composeButton.frame = CGRectOffset(rect,2 * w,0)
  22. }
  23. /// 添加所有子控制器
  24. private func addChildViewControllers() {
  25. //Start添加所有子控制器--------------------------
  26. addChildViewController(HoMetableViewController(),title:"首页",imageName:"tabbar_home" )
  27. addChildViewController(MessageTableViewController(),title:"消息",imageName:"tabbar_message_center" )
  28. addChildViewController(UIViewController())
  29. addChildViewController(DiscoverTableViewController(),title:"发现",imageName:"tabbar_discover" )
  30. addChildViewController(profileTableViewController(),title:"我",imageName:"tabbar_profile" )
  31. //end-----------------------------------------
  32. }
  33. ///懒加载创建Button
  34. lazy private var composeButton: UIButton = {
  35. let button = UIButton ()
  36. //Start设置Button素材---------------------------------
  37. button.setImage(UIImage(named: "tabbar_compose_icon_add"),forState: UIControlState.Normal)
  38. button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"),forState: UIControlState.Highlighted)
  39. button.setBackgroundImage(UIImage(named: "tabbar_compose_button"),forState: UIControlState.Normal )
  40. button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"),forState: UIControlState.Highlighted )
  41. //end-----------------------------------------------
  42. //此处不提示得手敲
  43. self.tabBar.addSubview(button)
  44. button.addTarget(self,action: "ClickComposeButton",forControlEvents: UIControlEvents.TouchUpInside)
  45. return button
  46. }()
  47. /// 添加控制器方法
  48. ///
  49. /// - parameter vc : 视图控制器
  50. /// - parameter title : 标题
  51. /// - parameter imageName: 图像名称
  52. private func addChildViewController(vc:UIViewController,title: String,imageName: String) {
  53. tabBar.tintColor = UIColor.orangeColor()
  54. vc.title = title
  55. vc.tabBarItem.image = UIImage(named: imageName)
  56. let nav = UINavigationController(rootViewController: vc)
  57. addChildViewController(nav)
  58. }
  59. </span>

@H_403_1@

@H_403_1@1.4 通过继承关系设置登录界面

@H_403_1@注: 根据用户是否登录来判断界面是否切换

1.4.1自定义一个继承UITableViewController的控制器


@H_403_1@1.4.2 修改所有控制器的继承关系,继承BaseTableViewController

@H_403_1@

1.4.3 设置BaseTableViewController的View

@H_403_1@

  1. <span style="font-family:Microsoft YaHei;"> ///设置自定义登录View
  2. private func setVistorView() {
  3. //创建空View,测试使用
  4. view = UIView ()
  5. //设置颜色
  6. view.backgroundColor = UIColor.orangeColor()
  7. }</span>
@H_403_1@

@H_403_1@

@H_403_1@1.4.4 重写BaseTableViewController 的loadView()方法

@H_403_1@

  1. <span style="font-family:Microsoft YaHei;">//定义一个用户是否登录的开关
  2. var userLogin = true</span>
@H_403_1@
  1. <span style="font-family:Microsoft YaHei;"> override func loadView() {
  2. //判断用户登录是否成功切换View
  3. userLogin ? super.loadView() : setVistorView()
  4. }</span>

猜你在找的Swift相关文章