Swift学习第三天之零散知识点

Swiftx学习03

1.创建对象仅仅是类名()

2.添加导航栏let nav = UINavigationController(rootViewController: home)

3.为UITabBarController添加子控制器addChildViewController或者是viewcontrollers

4. tabBar在Swift里面是UITabBarController私有的属性,所以赋值采用kvc的方式

setValue(czTabBar, forKey: "tabBar")

5. 修改系统渲染色 -- 建议大家 在程序刚启动的时候就修改

修改UITabBar的渲染色

UITabBar.appearance().tintColor = UIColor.orangeColor()

6.修改整个UITabBar的颜色UITabBar.appearance().barTintColor = UIColor.orangeColor()

7.修改navbar的选染色

UINavigationBar.appearance()tintColor = UIColor.orangeColor()

8.为 UITabBarController的子控制器添加tabbar上面的图片,以及选中图片

子控制器.tabBarItem.image

子控制器.tabBarItem.selectedImage

设置UITabBarController的tabbar以及tabbar按钮的文字仅仅是同一句代码就ok  控制器.title

9. UITabBarButton是UITabBar类里面的私有属性,并不能拿到,所以我们可以通过遍历子控件来获取

1)for subview in subviews

2) subview.isKindOfClass(NSClassFromString("UITabBarButton")!)获取到的subview即为UITabBarButton控件

10.懒加载按钮的两种写法

1>lazy var compose1Button: UIButton = UIButton(type: UIButtonType.Custom)

2>lazy var compose2Button: UIButton = {

return UIButton(type: UIButtonType.Custom)

}()

11.*在swift里面我们可以直接修改结构体frame的属性,而不用像oc那样

12.我们在写override init(frame: CGRect)方法是,通过纯代码的方式写代码,系统会自动生成

required init?(coder aDecoder: NSCoder) {

// 人为的产生一个崩溃来提醒

fatalError("init(coder:) has not been implemented")

}

如果你要采用 Storboard 才创建视图的话, 需要在 初始化里填下 逻辑代码,并将上面的警告删除掉

13*创建一个新的项目时,可以删除Landacape Left以及Landacape Right默认支持的iphone手机的竖屏,添加类前缀,向下兼容两个版本,添加启动页自己appicon

14.典型的pod 文件,可以直接复制

use_frameworks!

platform :ios, ‘8.0‘

pod ‘AFNetworking‘

pod ‘SDWebImage‘

pod ‘SVProgressHUD‘

pod ‘SnapKit‘

pod ‘FMDB‘

14.创建UIWindow的典型几步

1> window = UIWindow(frame: UIScreen.mainScreen().bounds)

2> window?.rootViewController = CZTabBarViewController()

3>window?.makeKeyAndVisible()

15.线程休眠直接sleep(5)

16.git管理的几步

1>在服务器上创建 远程仓库     oschina里面(码云)

2> git clone 下载到本地

3>添加 忽略文件

17. pod install -- 这个安装比较慢 -> 建议大家采用  pod install --no-repo-update

18.自定义视图的三部曲:

1. 重写构造方法

2. 添加子视图和设置约束

3. 懒加载

19. 当我们切换页面的时候,动画会停止,所以为了避免基本动画不停止baseAnimation.removedOnCompletion = false

20.swift类文件是不用导入的,但是pod得三方框架是要手动导入的

21.*项目经验.图片的常态,高亮以及选中名字相同,后缀不同,方便简化代码

22.单例的三种创建方式

//单例的创建方式1

static let sharePerson:Person = Person()

//单例的创建的方式2(本质也是一个闭包)

static let sharePerson1:Person = {

let p = Person()

return p

}()

//单例的创建方式3

static let sharePerson2 = { ()->Person in

let p = Person()

return p

}()

23.swift支持方法的嵌套(实现部分)

24. ageLab.text = "\( p?.age ?? 0)"  后面加??的原因,p是可选可能不存在,p不存在,age肯定也不存在,但是前面是个必选的属性,所以加??保证值一定存在

25,textField监听的方法

textField.addTarget(self, action: "change", forControlEvents: UIControlEvents.EditingChanged)

26.判断textField里面是否存在文字 nameTextF.hasText()

27.swift里面只有true和false无yes  和no

28.重写模型的miao描述方法

override

var description: String{

let keys = ["name","age"]

return dictionaryWithValuesForKeys(keys).description}

29.代理方法在extension的里面进行实现

30. as!强转()?以及!根据前面判断

31. let indexPath = self.tableView.indexPathForSelectedRow!获取选中cell的indexPath

32.点击cell通过sb连接的,通过prepareForSegue获取目的控制器let desVc = segue.destinationViewController as!...

33.获取随机数random()%25

34.数据的赋值, 重写didSet,相当于set方法重写

var p:Person?{

didSet{

//自身的属性赋值

}

}

35. 在闭包里面的self必须要写,因为要指明是哪个控制器

36. tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) 这句代码里返回的对象一定是一个PersonTableViewCell类型的,我们才可以使用as!,因为“cell”这个id标识的肯定是PersonTableViewCell类型的cell。但是如果这里不确定这个对象是否一定是PersonTableViewCell类型的,就得是用as?来尝试着转一下。?表示不确定,如果转不成功也不报错。但是as!如果转不成功可就崩了

时间: 2024-08-24 04:25:06

Swift学习第三天之零散知识点的相关文章

swift学习笔记(三)关于拷贝和引用

在swift提供的基本数据类型中,包括Int ,Float,Double,String,Enumeration,Structure,Dictionary都属于值拷贝类型. 闭包和函数同属引用类型 捕获则为拷贝.捕获即定义这些常量和变量的原作用域已不存在,闭包仍然可以在闭包函数体内引用和修改这些值 class属于引用类型. Array的情况稍微复杂一些,下面主要对集合类型进行分析: 一.关于Dictionary:无论何时将一个字典实例赋给一个常量,或者传递给一个函数方法时,在赋值或调用发生时,都会

Swift学习(三)

一.Swift中类型推导&基本运算 Swift中类型推导 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略 查看标识符类型:option + 鼠标左键 整型 有有符号 8位.16位.32位.64位跟C语言中的相同. Int:和平台相关,默认相当于OC中的NSInteger 无符号 8位.16位.32位.64位跟C语言中的相同. UInt:和平台相关,默认相当于OC中的NSUInteger Swift中基本运算 Swift中

swift学习第三天

swift開發一站到底界面 第一步我們佈局選擇主界麵,並且有一個禎動畫 第二步我們佈局試題界面,並且設置響應事件 第三步佈局回答結果界面

ios开发swift学习第三天:逻辑分支

一. 分支的介绍 分支即if/switch/三目运算符等判断语句 通过分支语句可以控制程序的执行流程 二. if分支语句 和OC中if语句有一定的区别 判断句可以不加() 在Swift的判断句中必须有明确的真假 不再有非0即真 必须有明确的Bool值(swift中的Bool值用false/true来表示) Bool有两个取值:false/true // 演练一: let a = 10 // 错误写法: //if a { // print("a") //} // 正确写法 if a &g

Swift学习 (三)

3.函数: 在Swift中函数的定义基本与OC一样. 主要区别为: 通过func关键词定义函数 返回值在->关键词后标注 各举一个类方法与实例方法例子. 1 2 + (UIColor*)blackColor - (void)addSubview:(UIView *)view 对应的swift版本 1 2     class func blackColor() -> UIColor //类方法, 通过 class func 关键词声明     func addSubview(view: UIVi

【1】学习C++时,一些零散知识点01

学习从学习完C后,接触了C++,最重要的便是编程理念的转变.C缩重视的是结构化编程,面对一个较大的程序,就将他分解成小型.便于管理的任务,如果分解后的任务还是偏难过大的话,那将这个任务继续进行分解.这种方法在早期确实的提高了程序的清晰度.可靠性使其容易维护,但是在编写大型程序的时候会翻车,遇到各种挑战. 这时,出现了一种新的编程思维——面对对象编程.面对对象编程与面对过程编程最大的区别,便是重视的不再是过程,而编程了数据.说句装逼的话:面对对象编程不像面对过程编程那样,试图使问题满足语言的过程性

iOS ---Swift学习与复习

swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swift http://stackoverflow.com http://weibo.com/oldcoder 43个优秀的Swift开源项目推荐 https://developer.apple.com/swift/blog/ http://code.cocoachina.com http://swif

学习IOS开发UI篇--UI知识点总结(三) UIScrollView/UIPageControl/NSTimer

UIScrollView:常用属性 @property(nonatomic)   UIEdgeInsets     contentInset;               // default UIEdgeInsetsZero. add additional scroll area around content @property(nonatomic,getter=isPagingEnabled) BOOL   pagingEnabled;     // default NO. if YES,

swift学习三:?和!理解

Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化.如果在使用变量之前不进行初始化就会报错: 1 2 3 4 5 var stringValue : String   //error: variable 'stringValue' used before being initialized //let hashValue = stringValue.hashValue //