以前学习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)

}

}

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

swift项目-模仿团购(主界面的搭建,以及首页的一些细节)的更多相关文章

  1. 12-28 显示团购数据界面的搭建,cell的自定义方面的知识总结

    1.通过plist加载模型数据 2.controller中懒加载数据 3.设置tableView的数据源 4.写数据源的方法 5.观察演示项目,分析通过默认的cell的4种现实方式,无法实现要想要的现 ...

  2. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文 ...

  3. 【Android】7.8 MyDemos项目的结构和主界面相关代码

    分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 上一讲已经说过,系统升级为Win10后,重新创建了一个新的项目:MyDemos,并把前7章合并到了这个项目中,这次 ...

  4. Mark一下在模仿团购App搭建页面时犯的低级错误

    1.关于Xib拖线错误 2.下面这个错误的根源其实是代码提示时直接敲下了回车,没看仔细,导致后来找了好久才发现该错误,郁闷啊!

  5. iOS开发:一个高仿美团的团购ipad客户端的设计和实现(功能:根据拼音进行检索并展示数据,离线缓存团购数据,浏览记录与收藏记录的批量删除等)

    大致花了一个月时间,利用各种空闲时间,将这个客户端实现了,在这里主要是想记录下,设计的大体思路以及实现过程中遇到的坑...... 这个项目的github地址:https://github.com/wz ...

  6. iOS UI基础-9.1 UITableView 团购

    概述 接下来,我们要做的是团购界面的设计,最张要实现的效果图及项目结构图      团购数据的展示 思路: 系统自带的tableCell不能展示三个文本,不能满足条件,自定义tableCell 每一个 ...

  7. iPad开发--美团界面的搭建(主要是对Popover的使用,以及监听)

    一.主界面的搭建,效果图.设置self.navigationItem.leftBarButtonItems属性. 由于leftBarButtonItem是通过xib文件创建的,通过xib创建的控件默认 ...

  8. Android小项目之十一 应用程序的主界面

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  9. HTML连载60-水平居中与设计一个团购界面

    一.水平居中 1.margin:0 auto在绝对定位中就失效了 2.如何让绝对定位的元素水平居中? 只需要设置绝对定位元素的left:50%:然后再设置绝对定位元素的margin-left:-元素宽 ...

随机推荐

  1. Spring Batch Concepts Chapter

    Spring Batch Concepts Chapter The below figure shows two kinds of Spring Batch components:infrastruc ...

  2. IPv6 sokcet 编程

    IPv6的数据包包头与IPv4的数据包头不一样,所以在IPv6下的socket编程用到的某些结构体和地址转换函数也与IPv4下的socket编程不一样.涉及的结构体有:IPv4中使用sockaddr/ ...

  3. 开始学习web前端技术

    不能再蹉跎了,不能再徘徊了,不能再犹豫了,犹豫徘徊等于白来…… 感觉之前浪费了太多的岁月,必须得学习一门实用的技术来充实自己空虚的心情了. 想来想去网页应该是万金油的,大大小小多多少少都得用到.既然如 ...

  4. Swift学习笔记三

    协议和扩展 在Objective-C中,协议是很常见也非常重要的一个特性,Swift中也保留了协议,语法略有变化. 用protocol关键字声明一个协议: protocol ExampleProtoc ...

  5. 2015南阳CCPC D - Pick The Sticks dp

    D - Pick The Sticks Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description The story happened lon ...

  6. 用DirectShow实现视频採集-流程构建

    DirectShow作为DirectX的一个子集,它为用户提供了强大.方便的多媒体开接口,而且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序.前面一篇文章已经对Dir ...

  7. 搭建Nginx图片服务器

    搭建Nginx图片服务器 Part-I 安装Nginx 安装PCRE 下载 ngx_cache_purge 并解压,用来清除缓存 下载Nginx并解压 cd nginx-1.7.7 编译,--pref ...

  8. GMM-HMM语音识别模型 原理篇

    本文简明讲述GMM-HMM在语音识别上的原理,建模和測试过程.这篇blog仅仅回答三个问题: 1. 什么是Hidden Markov Model? HMM要解决的三个问题: 1) Likelihood ...

  9. as 中的反射 describeType

    describeType函数在adobe官方在线文档上的定义如下:生成描述ActionScript对象(命令为方法的参数)的XML对象,此方法实现ActionScript语言的反射编程概念. 这个方法 ...

  10. win7 debian 双系统修改引导项顺序

    转载:http://jingyan.baidu.com/article/72ee561aa1d123e16138df81.html 问题描述: 个人在宿舍使用的比较多的是Window 7,而它的启动项 ...