
iOS
b_8196_p
这个作者很懒,什么都没留下…
展开
-
iosday2----stackView、Label、Gesture
Stackview它继承于UIView,用来管理一行或一列视图的布局(堆叠视图的控制器类视图,所谓堆叠视图时一种平铺式的线性布局方式,不可重叠,布局方向也不可交错.Axisstack 的朝向,只有垂直或水平Distribution管理的视图在沿着其轴向上的布局如果减去所有的spacing,所有arrangedSubview的固有尺寸(intrinsicContentSize)之和不能填满StackView,那么就按照Hugging的优先级将其拉伸。反之,如果超出StackView的尺寸则按Com原创 2020-12-16 11:12:13 · 265 阅读 · 0 评论 -
ios开发---AutoLayout
布局约束:1.页边间距约束左边距和右边距。2.水平间距约束3.等宽约束4.方向比例约束5.实践布局约束原创 2020-12-14 18:12:13 · 181 阅读 · 0 评论 -
swift基础day7---泛型、不透明类型、自动引用计数、内存安全、访问控制
泛型能根据自定义的需求,编写出适用于任意类型的、灵活可复用的函数及类型。泛型函数泛型版本的函数使用占位符类型名(这里叫做 T ),而不是 实际类型名(例如 Int、String 或 Double),占位符类型名并不关心 T 具体的类型,但它要求 a 和b 必须是相同的类型,T 的实际类型由每次调用 swapTwoValues(:???? 来决定。//泛型函数func swapTwoValues<T>(_ a: inout T, _ b: inout T){ let tempora原创 2020-12-11 15:18:19 · 233 阅读 · 0 评论 -
swift基础day7---扩展、协议
扩展(extension)扩展可以给一个类型添加新的功能,但是不能重写已经存在的功能。扩展可以实现:添加计算型实例属性和计算型类属性定义实例方法和类方法 提供新的构造器定义下标定义和使用新的嵌套类型使已经存在的类型遵循一个协议对一个现有的类型,如果你定义了一个扩展来添加新的功能,那么这个类型的所有实例都可以使用这个新功能,包括那些在扩展定义之前就存在的实例。计算型属性扩展:扩展可以添加新的计算属性,但是它们不能添加存储属性,或向现有的属性添加属性观察者。构造器扩展扩展可以给一个类添原创 2020-12-10 23:27:21 · 208 阅读 · 0 评论 -
swift基础day6---类型转换、嵌套类型
类型转换在 Swift 中使用 is 和 as ,分别提供了一种方式去检查值的类型或者转换它的类型。为类型转换定义类层次将类型转换用在类和子类的层次结构上,检查特定类实例的类型并且转换这个类实例的类型成为这个层次结构中的其他类型.class MediaItem { var name: String init(name: String) { self.name = name }}class Movie: MediaItem { var director原创 2020-12-10 22:52:59 · 153 阅读 · 0 评论 -
swift基础day6---错误处理
错误处理Swift 在运行时提供了抛出、捕获、传递和操作可恢复错误等支持。Swift 中的错误处理涉及到错误处理模式与Cocoa有关。表示与抛出错误遵循Error 协议。//表示与抛出错误enum VendingMachineError: Error { case invalidSelection //选择无效 case insufficientFunds(coinsNeeded: Int) //金额不足 case outOfstock //缺货}throw原创 2020-12-10 18:17:03 · 178 阅读 · 0 评论 -
swift基础day6---可选链
可选链式调用可选链式调用可以应用于任意类型,并且能检查调用是否成功。使用可选链式调用代替强制展开可选链式调用的返回结果与原本的返回结果具有相同的类型,但是被包装成了一个可选值。(类似于:Int?)//使用可选链式调用代替强制展开class Person { var residence: Residence? //如果使用!,residence没有值会出现运行错误}class Residence { var numberOfRooms = 1}let john = Pe原创 2020-12-10 16:24:28 · 146 阅读 · 0 评论 -
swift基础day6----构造方法与析构过程
存储属性的初始赋值类和结构体在创建实例时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。可以在构造器中为存储型属性设置初始值,也可以在定义属性时分配默认值。构造器构造器在创建某个特定类型的新实例时被调用。构造器本身的作用,只是为了确保对象能被正确构造。struct Fahreheit { var temperature: Double init() { temperature = 32.0 }}var f = Fahrehei原创 2020-12-10 15:24:31 · 182 阅读 · 0 评论 -
swift基础day5---继承
//继承 Inheritanceclass Transpotation { var petrol: Int = 10 //油量 //行驶 func drive() { //具体由子类实现 if petrol == 0 { self.addPetrol() } } //加油 func addPetrol() { petrol += 10 }}//子类cla原创 2020-12-07 18:08:06 · 114 阅读 · 0 评论 -
swift基础day5---面向对象(封装、多态)
封装把隐藏属性、方法与方法实现细节的过程称为封装目的:1.使用数据更加方便,2.为了数据保护。隐藏属性和方法使用访问控制修饰符将类和其属性方法封装起来。修饰符:private:所修饰的属性或者方法只能在当前 Swift 源文件里可以访问,在别的文件里访问会出错.public:所修饰的属性或者方法对于引用了该文件或者模块的文件来讲,都能访问这些属性和方法。一般来说 public 的出现是为了 API 开发而设置。internal:默认的访问权限。所修饰的属性或者方法在源代码所在的整个模块都可原创 2020-12-07 18:03:03 · 146 阅读 · 0 评论 -
swift基础day5---方法
实例方法是被某个类型的实例调用的方法,类型方法是定义在类型本身上调用的方法。实例方法属于某个特定类、结构体或者枚举类型实例的方法。提供访问和修改实例属性的方法或提供与实例目的相关的功能,并以此来支撑实例的功能。实例方法能够隐式访问它所属类型的所有的其他实例方法和属性。只能被它所属的类的某个特定实例调用,并且不能脱离于现存的实例而被调用。class Counter { var count = 0 //实例方法 func increment() { count +原创 2020-12-07 15:57:24 · 135 阅读 · 0 评论 -
swift基础day5---属性
属性计算属性:直接计算(而不是存储)值,可以用于类、结构体和枚举。存储属性:将常量和变量存储为实例的一部分,只能用于类和结构体。类型属性:与类型本身关联。属性观察器可以添加到类本身定义的存储属性上,也可以添加到从父类继承的属性上。可以利用属性包装器来复用多个属性的 getter 和 setter 中的代码存储属性:struct FixedLengthRange { var firstValue: Int let length: Int}var rangeOfThreeI原创 2020-12-07 14:11:48 · 190 阅读 · 0 评论 -
swift基础day4---结构体和类
结构体和类对比共同点:定义属性用于存储值定义方法用于提供功能定义下标操作用于通过下标语法访问它们的值定义构造器用于设置初始值通过扩展以增加默认实现之外的功能遵循协议以提供某种标准功能不同点:优先使用结构体,因为它们更容易理解,仅在适当或必要时才使用类。继承允许一个类继承另一个类的特征类型转换允许在运行时检查和解释一个类实例的类型析构器允许一个类实例释放任何其所被分配的资源引用计数允许对一个类的多次引用类实例没有默认的成员逐一构造器命名:类和结构体命名使用大写,属性和方法使用小写原创 2020-12-06 23:49:43 · 220 阅读 · 0 评论 -
swift基础day4---枚举
枚举(enumerations)枚举成员可以指定任意类型的关联值存储到枚举成员中,枚举是一等类型。枚举的特性:计算属性,提供枚举值的附加信息,实例方法,提供和枚举值相关联的功能,也可以定义构造函数,来提供一个初始值,可以在原始实现的基础上扩展它们的功能,提供标准功能。以一个大写字母开头。给枚举类型起一个单数名字而不是复数名字,以便于:var directionToHead = CompassPoint.west枚举成员的遍历(1)令枚举遵循 CaseIterable 协议。Swift 会生成一个 a原创 2020-12-06 21:43:01 · 200 阅读 · 0 评论 -
swift基础day4---闭包
闭包闭包的结构函数包含:函数名,参数列表,返回值,函数体。闭包:{(参数列表) ->fan返回值 in 闭包体}//标准函数func myFunc(param: Int) -> Int{ return param * param}//闭包let myClosures = {(param: Int) -> Int in return param * param}myFunc(param: 3) //调用函数myClosures(3) //调用闭包原创 2020-12-06 16:26:26 · 179 阅读 · 0 评论 -
swift基础day4---函数
函数与闭包函数函数类型闭包函数有名称的功能代码块,闭包在大多数情况下没有名称的功能代码块。函数每个函数都有一个由函数的参数值类型和返回值类型组成的类型.内部命名在函数实现时使用,外部命名在函数调用时使用。在某参数类型的后面追加符号"…",会将此参数设置为数量可变,传递的值会被包装成集合类型赋值给相应参数,并且传递的参数类型必须相同,并且可以传递多组数了可变的参数,不同参数之间参数类型可以不同。参数传递:如果传递的是值类型的参数,那么参数值在传递斤函数内部时会将原值拷贝为一份常量,且在函数内不可以原创 2020-12-06 14:23:34 · 215 阅读 · 0 评论 -
swift基础day3
1.for循环与while循环(Control Flow: For-In Loops, While Loops)//for循环for index in 1...3{ print("\(index) times 6 is \(index * 6)")}let num1 = 0let num2 = 20for index in stride(from: num1, to: num2, by: 5){ print(index) //0,5,10,15不包含20} //stride(.原创 2020-12-04 16:45:24 · 119 阅读 · 0 评论 -
swift基础day2
1.Strings and Characters字符串字面量的特殊符号:转义字符 \0(空字符)、\(反斜线)、\t(水平制表符)、\n(换行符)、\r(回车符)、"(双引号)、’(单引号)。Unicode 标量,写成 \u{n}(u 为小写),其中 n 为任意一到八位十六进制数且可用的 Unicode 位码。字符串是值类型每一个 Swift 的 Character 类型代表一个可扩展的字形群。而一个可扩展的字形群构成了人类可读的单个字符,它由一个或多个(当组合时) Unicode 标量的序列组成原创 2020-12-03 23:39:06 · 122 阅读 · 0 评论 -
swift基础day1
1.Xcode playground如果想创建 iOS playground 则需要引入 UIKit :import UIKit2.常量和变量(Constants and Variables)let定义常量,定义完成后不可修改var定义变量,可修改。3.常量和变量的类型: Int, Double, Bool, TupleInt:Double:Float:Bool:True,False,nilTuple:tuple用于传递复合类型的数据,介于基础类型和类之间,复杂的数据通过类(或结构原创 2020-12-02 16:40:06 · 119 阅读 · 0 评论