Swift 项目 01

1.项目的搭建

  1.1 创建文件

    1.1.1 删除模板文件 --> viewController.Swift, main.storyBoard

    1.1.2 创建项目结构, 主目录 Classess --> 二级目录Module(功能模块), Model(业务模型), Tools(工具)---> Module 的子目录Main,Home,            Message,Discover,profile

    1.1.3 创建项目文件,创建每个功能模块对应的storyBoard+控制器,(每个视图控制器都继承自tabViewController)

      * 每个storyBoard,都是有navigationController + tabViewController构成  

      * navigationController  是初始控制器,tabViewController 分别继承自对应的视图控制器

      * 表格的可重用标示符 分别是 目录名+Cell

      * 搭建完成的文件目录 

  1.2 添加子控制器

    1.2.1 由于是采用的是多控制器管理,所以采用代码的方式来添加子控制器

    1.2.2 拖入素材,更改图片的填充模式为原始图片大小

    1.2.3 代码的实现

/// 添加子控制器
private func addChildViewControllers() {
    tabBar.tintColor = UIColor.orangeColor()

    addChildViewController("Home", "首页", "tabbar_home")
    addChildViewController("Message", "消息", "tabbar_message_center")
    addChildViewController("Discover", "发现", "tabbar_discover")
    addChildViewController("Profile", "我", "tabbar_profile")
}

/// 添加子控制器
/// @param sbName       storyboard 名称
/// @param title        标题
/// @param imageName    图片名称
private func addChildViewController(sbName: String, _ title: String, _ imageName: String) {

    let sb = UIStoryboard(name: sbName, bundle: nil)
    let nav = sb.instantiateInitialViewController() as! UINavigationController
    nav.title = title
    nav.topViewController.title = title
    nav.tabBarItem.image = UIImage(named: imageName)
    nav.tabBarItem.selectedImage = UIImage(named: imageName + "_highlighted")

    addChildViewController(nav)
}

  

  1.3 自定义TabBar

    1.3.1 在4个控制器切换按钮中,添加 撰写按钮, 自定义tabBar

    1.3.2 新建mainTabBar.Swift 文件,修改storyBoard中tabBar的类

    1.3.3 按钮的懒加载

/// 撰写按钮
   lazy var composeButton: UIButton = {
    let button = UIButton()
    button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
    button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
    button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
    button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)

    self.addSubview(button)

    return button
}()

    1.3.4 调整按钮位置

override func layoutSubviews() {
    super.layoutSubviews()

    var index = 0
    let w = self.bounds.size.width / CGFloat(buttonCount)
    let h = self.bounds.size.height

    for view in self.subviews as! [UIView] {
        // 判断子视图类型
        if (view is UIControl && !(view is UIButton)) {
            view.frame = CGRectMake(CGFloat(index) * w, 0, w, h)       if index += index == 1? 2 :1
        }
    }
    self.composeButton.frame = CGRectMake(0, 0, w, h)
    self.composeButton.center = CGPointMake(self.center.x, h * 0.5)
}

    1.3.5 给按钮添加事件

 // 设置撰写按钮点击函数
    mainTabBar.composeButton .addTarget(self, action: "composeButtonClick", forControlEvents: .TouchUpInside)

    1.3.6 用private 来修饰函数私有, 点击事件不能修饰,因为系统监听到点击事件时,会向控制器发送点击按钮的消息。

private func addChildViewController(sbName: String, _ title: String, _ imageName: String)

  1.4 总结

    * Swift 语法更加简洁,字符串拼接可以直接用“+”号,可是使用“_”来忽略不需要考虑的参数,类型校验更加的严格。

    * Swift 懒加载的写法

    * 私有方法可以用private 来修饰

  

时间: 2024-10-08 09:51:00

Swift 项目 01的相关文章

Swift项目兼容Objective-C问题汇总

本文是投稿文章,作者:一叶(博客)欢迎将原创文章或者译文投给我们,投稿方式:[email protected]或者在首页点击“投稿爆料” 一.解决问题 Swift 项目需要使用封装好的Objective-c组件.第三方类库,苹果提供的解决方案能够处理日常大部分需求,但还不能称之为完美,混编过程中会遇到很多问 题.本文将Swift兼容Objective-c的问题汇总,以帮助大家更好的使用Swift,内容列表如下: 1. Swift调用Objective-c代码 2. Objective-c调用Sw

Swift项目引入第三方库的方法

以下,将创建一个Swift项目,然后引入3个库: Snappy 简化autolayout代码的库 Alamofire HTTP网络库,AFNetworking作者写的 SDWebImage 图片加载,objc项目,通过头文件bridge方式供swift使用 其中,前两个是Swift的库,SDWebImage是Objc的库. 源代码见:https://github.com/MarshalW/SwiftWith3rdLibDemo 项目跑起来是这个样子: 做下面步骤之前,需要让自己的项目是git项目

在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController

你可以完全自己手动写一个侧滑菜单,但是现在在 GitHub 上面已经有很多免费的开源库了,如果不是有很特别的需求,大可不必新建一个轮子. 在这里我使用的这个第三方库名字叫做 SWRevealViewController,作者是 John Lluch.这个免费的类库提供了很方便快捷的方法去把侧滑菜单加入到你的 App 里面,而且它还提供了很多个性化的设置项.它是用 Objective-C 来写的,但是我们也可以很方便的在 Swift 项目中去使用它.你分分钟便可学会如何使用. 首先来看一下我们的

Swift项目实战-基于分层架构的多版本iPhone计算器-免费直播公开课邀您参与

Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播课 好消息:买本课程送相关讲师图书+50金币课程优惠券!还有更好消息,为了回馈新老学员,本次采取直播免费,录播收费的形式哦~! 购买本课程赠送关东升老师价值69元国内第一本<Swift开发指南>,并且赠送50元优惠券一张.69+50>99.(购买课程后请联系客服QQ:1575716557) 本课程采用QQ群直播方式进行直播,直播免费看了,完整的基于Swift项目实战,手把手教你做一个Swift版iPhone计算器. 直播

iOS开发项目-01环境搭建

iOS开发项目-01环境搭建 一.基本过程 1.新建一个项目 (1)删除storyboard (2)在配置界面中,把main  删除,手动设置 2.准备素材 图片素材如下: 这个项目是模仿新浪,实现一个山寨的新浪微博系统,新版本的系统中已经放弃了非视网膜屏幕. 说白了,这种情况下,如果手机是3.5英寸的ios7系统,则看不到该启动动画. 设置方法,右键单击show in finder,修改json文件. Contents.json,对文件进行修改,让系统启动画面对3.5英寸的ios7系统提供支持

Swift学习第二练——Swift项目时光电影

Swift学习第二练--Swift项目时光电影 很早以前的一个OC的练习项目,用swift重新写了一遍,因为xcode版本的更新对swift的兼容度也在不断改变,此版本适用于xcode6.1. 这个项目中,用swift将iOS官方SDK中的HTTP进行了封装,使用了swift编写的异步加载网络图片的方法.练习了用swift操作界面布局,跳转界面等的方法. 下面是封装的下载类的核心代码: private var httpConnection:NSURLConnection? class ZYHHt

Swift 项目中常用的第三方框架

Swift 项目中可能用到的第三方框架 字数1004 阅读4091 评论17 喜欢93 这里记录下swift开发中可能用的框架 , 最近浏览了不少,积累在这里,以后用的时候方便查阅.顺便推荐给大家! 这里的框架都是纯swift的 , 感谢开源 ,感谢大神们 . 下拉刷新 BreakOutToRefresh 一个下拉刷新打砖块的swift库 SDRefreshView 简单易用的上拉和下拉刷新 ZLSwiftRefresh - 下拉刷新/上拉加载更多,支持自定义动画,集成简单 GearRefres

HttpClient_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问

HttpClient_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问 代码下载地址: http://download.csdn.net/detail/poiuy1991719/8594485 项目01: URLUtil类: package com.west.test.httpclient; /** *01:定义访问路径 *com.west.test.httpclient.PostServlet */ public class URLUtil { public

swift项目初始化并添加忽略文件Swift.ignore

1 先去GitHub上去把最新的忽略文件下载下载 https://github.com/github/gitignore 2 然后找到Swift.gitignore  把里面的 pod 前面的# 删除然后保存  3 去码云上新建一个项目 然后把项目克隆到本地 git clone  [email protected]:******** 把刚刚的忽略文件放在克隆下来的项目里 进去  cd 当前的项目  然后输入命令 mv Swift.gitignore  .gitinore  隐藏忽略文件 /* d