以前学习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. CGContext绘图

    0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGContex ...

  2. 【转】Android 4.4前后版本读取图库图片和拍照完美解决方案

    http://blog.csdn.net/zbjdsbj/article/details/42387551 4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4 ...

  3. hdu 5569 matrix dp

    matrix Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5569 D ...

  4. POJ1463:Strategic game(树形DP)

    Description Bob enjoys playing computer games, especially strategic games, but sometimes he cannot f ...

  5. [Ramda] Simple log function for debugging Compose function

    const log = function(x){ console.log(x); return x; } const get = R.curry(function(prop, obj){ return ...

  6. target=_parent与target=_top的区别与用途

    转自:http://www.taoshaw.com/taoshaw/article.asp?id=1868 在手动改HTML代码时经常会用到target参数,常用的有两个target=_blank 和 ...

  7. cocos2dx-3.2 环境配置

    一.软件 1)VS2012(C++11特性在VS2012以上可以使用) 2)Cocos2d-x官网源码 3)JDK 4)NDK(3.2要用r9d版本,用了android-ndk-r8e报错了) 5)A ...

  8. C#_判断2个对象的值是否相等

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. Cloudera集群中提交Spark任务出现java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily错误解决

    Cloudera及相关的组件版本 Cloudera: 5.7.0 Hbase: 1.20 Hadoop: 2.6.0 ZooKeeper: 3.4.5 就算是引用了相应的组件依赖,依然是报一样的错误! ...

  10. css笔记02:选择器(标签式和类)

    body { margin:; padding:; background:#000 url('images/backgrounds/star.png') no-repeat fixed; font: ...