码迷,mamicode.com
首页 > 编程语言 > 详细

[纯代码]Swift 2.0 开发新浪微博--第一天

时间:2015-07-29 06:26:44      阅读:2361      评论:0      收藏:1      [点我收藏+]

标签:swift2.0   xcode   ios   

开发环境:Xcode 7  Beta 4 


1.1: 部署初步架构

技术分享

技术分享

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

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


1.3 自定义TarbBar

<span style="font-family:Microsoft YaHei;">import UIKit

class MainUITabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        addChildViewControllers()
        setComposeButton()
    }

    

   ///设置Button
    private func setComposeButton() {
    
        //计算Button 高度
        let w = tabBar.bounds.width / CGFloat (viewControllers!.count)
        
        // Button 已有宽和高的Rect
        let rect = CGRect(x: 0, y: 0, width: w, height: tabBar.bounds.height)
        
        //使用偏移 设置Button位置
        composeButton.frame = CGRectOffset(rect, 2 * w, 0)
        
    }
    
     /// 添加所有子控制器
    private  func addChildViewControllers() {
        
        //Start添加所有子控制器--------------------------
        addChildViewController(HomeTableViewController(), title:"首页",imageName:"tabbar_home" )
        
        addChildViewController(MessageTableViewController(), title:"消息",imageName:"tabbar_message_center" )
        
        addChildViewController(UIViewController())
        
        addChildViewController(DiscoverTableViewController(), title:"发现",imageName:"tabbar_discover" )
        
        addChildViewController(profileTableViewController(), title:"我",imageName:"tabbar_profile" )
        //end-----------------------------------------
    }
    
    ///懒加载创建Button
    lazy private var composeButton: UIButton = {
    
     
        let button = UIButton ()
        
        //Start设置Button素材---------------------------------
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal )
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted )
        //end-----------------------------------------------
        
        //此处不提示得手敲
        self.tabBar.addSubview(button)
        
        button.addTarget(self, action: "ClickComposeButton", forControlEvents: UIControlEvents.TouchUpInside)
        
        return button
        
    }()
    
    
    /// 添加控制器方法
    ///
    /// - parameter vc       : 视图控制器
    /// - parameter title    : 标题
    /// - parameter imageName: 图像名称
    private func addChildViewController(vc:UIViewController, title: String, imageName: String) {
        tabBar.tintColor = UIColor.orangeColor()
        vc.title = title
        vc.tabBarItem.image = UIImage(named: imageName)
        let nav = UINavigationController(rootViewController: vc)
        addChildViewController(nav)
        
    }
    </span>


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

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

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


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


1.4.3 设置BaseTableViewController的View

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


1.4.4 重写BaseTableViewController 的loadView()方法

<span style="font-family:Microsoft YaHei;">//定义一个用户是否登录的开关
    var userLogin = true</span>

<span style="font-family:Microsoft YaHei;">    override func loadView() {
        //判断用户登录是否成功切换View
        userLogin ? super.loadView() : setVistorView()
      
    }</span>

连续12天更新 每天更新一阶段

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

[纯代码]Swift 2.0 开发新浪微博--第一天

标签:swift2.0   xcode   ios   

原文地址:http://blog.csdn.net/hu_nan_kiss/article/details/47119271

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!