zoukankan      html  css  js  c++  java
  • 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!如果转不成功可就崩了

  • 相关阅读:
    Druid.io系列(三): Druid集群节点
    Druid.io系列(二):基本概念与架构
    Druid.io系列(一):简介
    am335x backlight
    imx6 fec分析
    imx6 ar8031 千兆网卡不能用
    imx6 spi分析
    imx6 i2c分析
    imx6 uart分析
    imx6 gpio分析
  • 原文地址:https://www.cnblogs.com/chaoyueME/p/5617127.html
Copyright © 2011-2022 走看看