博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios学习笔记01-弹出框,自动布局,类与对象,继承和重写
阅读量:3939 次
发布时间:2019-05-23

本文共 2397 字,大约阅读时间需要 7 分钟。

ios lebus课程学习笔记

前言

这个笔记不是从一开始就开始写的,由于有过ios开发的经验,刚刚开始的基本课程就没有写笔记了。后面的课程中,没看完一小节,都有使用自己的语言记下要点。希望能够巩固自己的学习并有利于之后自己复习

p36 实现弹出框功能:

  • 建议搜索 apple document alert,可以直接查到苹果官方文档。
let alert = UIAlertController(title: "My Alert", message: "This is an alert.", preferredStyle: .alert) alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .default, handler: {
_ in NSLog("The \"OK\" alert occured.")}))self.present(alert, animated: true, completion: nil)
  • completion:写的是一个类似于回调函数
  • 在回调函数中,调用全局变量,全局方法。要加一个self
  • int to CGFloat的方法:
    • CGFloat(int)

p38 使用第三方库来完成app:

  • 实际开发中,不会做。很麻烦,去github上找一找

  • 先下载github上面的代码包到本地

  • 工程的bundle,.h,.m文件拖到工程中的一个文件夹下面

  • 选中coupe items if needed

  • 在桥接文件中, #import “ProgressHYD.h"

  • 然后使用即可

p39 自适应 auto resizing

  • inspector:
    • 上下左右间隔,以及长和宽。六个可以操作的地方
    • 可以使得离,左边or右边变得不定死,也可以使得背景图填充满

p40 stackview 布局

  • 如果label中的文字被挤出了省略号。快捷键 command + =(size to fit content)
  • 文本离label边缘的间隙:右侧尺子,content insets
  • 多选多个label, enbed in stackview
  • shift 右击,(快速找到控件)
  • stack view 中有一些普遍的对齐属性(左,右,居中)
  • 然后就可以整个stack view 来进行左边或者下面自适应了
  • 实际操作: 在左边居中了,但是右边preview还是不太对。但是run起来是可以的

p41 嵌套stackview

  • 不断的使用垂直,水平 stack view 将控件放到一起
  • stackview中,上下可以拖动换位置

p42 拉伸,压缩优先级+distrubution

  • 在stack view中有的属性:
    • content hugging priority 拉伸
    • content Compression Resistance priority 压缩
  • 数字越大优先级越大,1–1000
  • 压缩优先级越大,就越不被压缩,也就是压缩优先级大,就不压缩
  • 拉伸优先级类似,数值越大,越不被拉伸。
  • distribution:
    • 布局中间的距离,或者是按照文字比例等等。。。

p43 约束constraints

  • safe area:
  • 添加约束
  • [-] 相对与margins开始计数,勾选之后,就对相对与安全区域开始计数
  • update frames 更新到你之前定好的约束
  • 右侧,可以修改约束的具体值
  • 等宽约束,等高约束,可以按住command,进行多选
  • 等高,和目前的屏幕进行约束,然后再到右侧中的multipller去改成1:n,first:second
  • 缩放字体,自动autoshrink,最小缩放到0.5倍。

p44 小技巧:

  • command + d 复制
  • option + 拖拽(复制)
  • 复制出来的控件同样会复制之前与代码的连接
  • 去掉stack view
    • 先将里面的东西拖出来,然后删掉控件
    • 点击下面的unembed(推荐)

p45 类与对象,枚举

  • 枚举 enum xx{ }
    xx 是一种自定义的类型
enum Type{
case sports case sedan case SUV}class Car {
var color = '' var seats = 2 init(name:String,seat:Int){
self.name = name self.seat = seat } // func name(参数名字:类型){}}
  • 便利构造器:另外一种构造器,在函数里面跳用初始构造器。

在构造的时候使用默认值,不需要传递全部参数,可以需要传递部分参数

convenience init(){
self.init(name:"玛莎拉蒂",seat: 2) } convenience init(name:String){
self.init(name:name,seat: 2) } // 在便利构造器中调用初始构造器(构造函数)

p46 继承与重写 override

  • 构造一个新的类,继承以往有的类(因为有很多相似性,并且从理解上也应该是子类)
  • 拥有父类的属性和函数
class FastCar:Car{
//继承父类 override func drive() {
super.drive()//调用父类的方法。 print("开快车")//追加新的方法。 } // 重写 drive()方法

转载地址:http://ecywi.baihongyu.com/

你可能感兴趣的文章
word文档不能显示图片的处理
查看>>
linux的多桌面环境Xephyr
查看>>
初探debian桌面的管理启动
查看>>
七层协议图
查看>>
华为交换机作为AC的条件
查看>>
禁用Ubuntu 15.04登录界面显示客人会话(简单-实用)
查看>>
linux X下安装的软件
查看>>
Linux监测某一时刻对外的IP连接情况
查看>>
CentOS7 最小环境安装Jumpserver 1.0版脚本
查看>>
X-Security X的安全控制
查看>>
openVAS的安装
查看>>
Centos 6.5 初始安装无网卡驱动解决方法
查看>>
linux中的网桥bridge
查看>>
linux中的teaming与bonding
查看>>
LVM
查看>>
用shell切分文件--split
查看>>
python中判断字符是否为中文
查看>>
Python - 利用zip函数将两个列表(list)组成字典(dict)
查看>>
python-全角转半角
查看>>
Python pass语句作用与用法
查看>>