zoukankan      html  css  js  c++  java
  • swift项目-模仿团购(主界面的搭建,以及首页的一些细节)

    以前学习oc的时候写的一个团购的项目,现在学习swift,拿来用swift写一遍,也是连猜带蒙的,一点一点的往上凑。

    今天主要是把主要的架子搭起来了。

    主要有:UITabBarController,UINavigationController,还有navigationItem(这家伙给我搁着坑着了,那个寻思着做出这个效果呢,结果效果出来了,中间的titleview不居中了)

    在导航控制器里核心代码:

     //初始化所有子视图控制器

        func setAllChildVC(){

            tabbarAddChindVC(ShouYeTableViewController(), title: "首页", imageName: "设置_16.png", selectedImageName: "设置_16.png")

            

            tabbarAddChindVC(TuanGouTableViewController(), title: "团购", imageName: "设置_18.png", selectedImageName: "设置_18.png")

            

            tabbarAddChindVC(FuJinViewController(), title: "附近", imageName: "首页_03.png", selectedImageName: "首页_03.png")

            

            

        }

        

        //将以vc作为跟视图的导航控制器,作为UITabBarController的子控制器

        func tabbarAddChindVC(vc:UIViewController, title:String,imageName:String,selectedImageName:String){

            

            vc.tabBarItem = UITabBarItem(title: title, image: UIImage(named: imageName), selectedImage: UIImage(named: selectedImageName))

            let nav2 = MainNavigationController(rootViewController: vc)

            

            addChildViewController(nav2)

            

        }

     关于导航栏颜色以及字号的设置:

     self.navigationBar.barTintColor = UIColor.orangeColor()

            let navigationTitleAttribute : NSDictionary = NSDictionary(objectsAndKeys: UIColor.blackColor(),NSForegroundColorAttributeName)

            self.navigationBar.titleTextAttributes = navigationTitleAttribute as [NSObject : AnyObject]

    在首页,主要是一个头视图(而不是分区头,分区头仔设置的时候,需要设置其高度),使用了一个自定义的view,进行按钮的添加,在其xib文件中(这个文件,在创建view的时候,是不让勾选的,只能后来单创建,或者别的什么方法吧,一定要注意根代码关联上,并且在加载的时候,采用

            let header = NSBundle.mainBundle().loadNibNamed("headView", owner: self, options: nil).last as! headView

            self.tableView.tableHeaderView = header

     来进行该视图的加载

    至于,当点击视图上的按钮的时候,需要将所点击的按钮的事件传给控制器来处理,这个用到了代理(闭包不会用啊,代理还用不好,,不开心)

    view中:

    import UIKit

    protocol headViewDelegate:class{//代表这个代理只能被一个类实现

        func clickedAtNum(clicked: Int)

        

    class headView: UIView {

         weak  var delegate: headViewDelegate?

        

        @IBAction func headClick(sender: UIButton) {

          var clickTag = delegate?.clickedAtNum(sender.tag)

        }

        

    }

    控制器中就是简单的遵守协议,实现方法,将自己设置成代理方就行了

  • 相关阅读:
    Eclipse设置C++自动补全变量名快捷键
    Sublime Text 3 快捷键总结
    eclipse使用技巧的网站收集——转载(三)
    eclipse使用技巧的网站收集——转载(二)
    eclipse使用技巧的网站收集——转载(一)
    WSAStartup函数
    makeword()
    CreateEvent的用法
    VC中_T()的作用
    多线程的那点儿事(之生产者-消费者)
  • 原文地址:https://www.cnblogs.com/mudy/p/4836891.html
Copyright © 2011-2022 走看看