自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

UncleX的专栏

iOS持续学习中

  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 Swift——自定义转场动画(一)

弹窗转场/过度动画(Popover效果)避免浪费大家时间,快速查看运行效果可以直接拉到最后看 【五.完整代码】 部分,如果要看递推逻辑,可以从前往后看。一.基本设置弹出一个控制器:系统提供了以下的方法 @available(iOS 5.0, *) open func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)

2021-11-29 17:56:29 2195

原创 小记:Swift中debugPrint()是运行在debug模式下吗?

小记:Swift中debugPrint()是运行在debug模式下吗?答案显然是否定的,但是有什么区别?项目中一般都会沿用oc的习惯,使用自定义log,定义环境标识符,偶然翻看基础,突然想debugprint听起来不就是在debug模式下运行吗,还定义啥,验证一下,果不其然,不是想当然的,虽然很好验证,但是,良好的经验和习惯还是很重要的。。。首先确定下debugprint 在 release模式下也会打印的事实:class ViewController: UIViewController {

2021-11-24 15:31:28 2480

原创 Mac 搭建OpenGL开发环境(xcode+ glew + glfw)

Mac 搭建OpenGL开发环境(xcode+ glew + glfw)开始第一步在终端中通过brew来安装:brew install glewbrew install glfw3通常第一个会很顺利安装成功,第二个如果安装失败,更新homebrewbrew update如果还是失败,可以重新安装homebrew的核心库cd /usr/local/Homebrew/Library/Taps/homebrew/rm -rf homebrew-coregit clone https://

2021-10-11 19:12:02 1295

原创 xcode 15 cocoapod问题,xcodeproj 多版本问题

xcode 15 cocoapod问题,xcodeproj 多版本问题pod init 报错gem list xcodeproj 多版本问题解决pod init 报错RuntimeError - [Xcodeproj] Unknown object version./Library/Ruby/Gems/2.6.0/gems/xcodeproj-1.19.0/lib/xcodeproj/project.rb:227:in `initialize_from_file'/Library/Ruby/Gems

2021-09-23 10:52:03 1335

原创 swift 学习笔记(23)-属性(属性观察器)

这里定义一个类,Number,一个属性为 max,代表最大值,先不看后面 willset 等的内容,如果只是一个普通的属性,当改变这个属性值的时候很好改变,随便赋值,不管后来的值是否比原来的值大还是小 当有需求为,后面赋值比原来值大时,赋值成功,小于原来值的时候,保持原值,就需要价格判断了,就需要属性观察器了.即现在的代码class Number{ // 定义一个最大值属性,给 v

2016-11-15 12:17:24 481

原创 swift 学习笔记(23)-属性(计算属性)

计算属性,前面已经提到过一些.大致和 oc 中的 set 和get 方法差不多,读取和赋值等//点struct Point{ var x = 100 var y = 100}var point = Point()print(point)// 宽高struct Size{ var width = 100 var height = 100}var size

2016-11-15 12:10:42 209

原创 swift 学习笔记(22)-属性(存储属性/延迟属性)

属性有很多类型,比如存储属性:赋值存值的,延迟属性,差不多和 oc 中的懒加载类似,计算属性,类型属性.还有属性观察器等 存储属性class Person{ // 属性由 var 修饰,如果类实例也是 var 修饰,则类实例的属性值可变 var name = "zhangsan" var age = 23}//var 修饰类实例,属性值可变,类实例也可以重新赋值var pe

2016-11-15 12:03:42 250

原创 swift 学习笔记(21)-类和结构体

// 类class Person{ // 属性 var name:String = "张三"}// 结构体struct Point{ var x = 0 var y = 0}// 类和结构体-->swift 中叫做类型// 对象和结构体对象--> 实例结构体,是值类型(不改变原来对象的值),类是引用类型(改变原对象的值),可以对比下前后值的变化let pers

2016-11-15 11:56:00 190

原创 swift学习笔记(20)-枚举

当一个变量有固定的几个取值的时候,建议用枚举,比如说星期,月份等….// 枚举类型定义的数据类型的取值,只能是 case 后面的取值enum weekDay:String{ case Monday case Tuesday case Wedesday case Thursday case Friday case Saturday = "星期六"

2016-11-15 11:49:06 262

原创 swift 学习笔记(19)-闭包

通过一个数组名称排序的例子,讲解闭包表达形式方式一var names = ["zhangsan","lisi","wangwu","zhaoliu"]//数组的 sort 方法就是一个闭包names.sort { (s1, s2) -> Bool in return s1 > s2}print(names)方式二//返回的是一个 bool 类型的值,大于才会返回,如果不成立,就不返回,

2016-11-15 11:43:59 188

原创 swift 学习笔记(18)-函数

函数 functionvar str = "Hello, playground"// 定义函数 func 关键字func printStr (){ print(str)}// 调用函数,函数名+()printStr()有参数有返回值的函数// 传入一个字符串,返回字符串的字符的个数// 函数的声明 + (参数名:参数类型)->(返回值类型)// str 即是外部参数,也是内部参数

2016-11-14 18:00:54 200

原创 swift 学习笔记(17)-guard

guard语句 条件判断语句,和 if 有点相反的意思// 原来的 if 语句执行for i in 1...10{ if i > 5 && i < 8{ print(i) print("正常逻辑,如果满足条件,执行这里的代码") }}guard语句://break 结束大循环for i in 1...10{ guard i > 5 &&

2016-11-14 17:45:27 147

原创 swift 学习笔记(16)-switch 语句

swich 语句 选择情况比较多的时候,一个情况可以设定为一个 case比如判断今天是星期几var week = 6switch week {var week = 6switch week {case 1: print("星期一")case 2: print("星期二")case 3: print("星期三")case 4: print("星期四"

2016-11-14 17:39:44 200

原创 swift 学习笔记(15)-if语句

if 语句 - 条件不用再加() - 非零就是真 不适用了,不能再用简单的非0数字代表真前面其实已经用过了,还是判断成绩的例子吧.var score = 80if score > 90 { print("youxiu")}else if score > 80 { print("lianghao")}else if score > 60{ print("jige")

2016-11-14 17:29:47 263

原创 swift 学习笔记(14)-while 循环

涉及到 while 循环的,基本就两个比较常用,先循环后判断,和先判断后循环 不过不是用的 do 关键字,而是用的 repeat基本使用//var number = 0// 先判断,后执行while number < 10{ print(number) number += 1}// 先执行,后判断repeat{ print(number) number +

2016-11-14 17:27:06 198

原创 swift 学习笔记(13)-for循环

for 循环 示例:for i in 0...10{ print(i)}// 通过 _ 忽略遍历的值,可以没有变量,用_代替for _ in 0...10{ print("tes")}数组遍历//遍历数组var names = ["name0","name1","name2","name3"]for name in names{ print(name)}// 有

2016-11-14 17:20:55 221

原创 swift 学习笔记(12)-区间运算符

区间运算符(…),一般用于 for 循环 //1~10 包括101...10for index in 1...10{ print( index)}//半开区间运算符//1~10 不包括10for index in 1..<10{ print(index)}var names = ["name1","name2","name3","name4","name5"]names

2016-11-14 17:10:39 223

原创 swift 学习笔记(11)-空合运算符

空合运算符: ?? (两个问号) 运算方式:一个可变类型的值,如果有值,就把本身赋值给一个常量或者变量,如果为 nil,就把 ?? 右边的值赋值过去这里配合三目运算符做举例说明//第一种var name:String?if name != nil { //不为空时强制解包,不会报错 name!}else { print("name = nil");}// 第二种

2016-11-14 17:05:42 639

原创 swift 学习笔记(10)-三目运算符

三目运算符 三目运算符由问号和冒号组成,先是一个表达式,判断语句,如果成立,就执行冒号前面的,如果不成立就执行冒号后面的,一对二的选择判断语句比如:一个小伙得了一百分let score = 100如果90以上算优秀,90分一下算良好var level:String?if score > 90 { level = "优秀"}else{ level = "良好"}以前是上面那么判断

2016-11-14 16:56:28 4802

原创 swift 学习笔记(9)-比较运算符

常用的比较运算符,> < >= <= … 建议在 playground 的中边敲边看效果,因为是实时输出的,所以效果比较明显,逻辑上没什么难度,只是简单的比较而已//比较元组:从左到右依次比较,比较出结果就结束var zhangsan = (age:18,name:"zhangan")var lisi = (age:20,name:"lisi")zhangsan > lisi"abc">"bbc

2016-11-14 16:48:29 269

原创 swift 学习笔记(7)-运算符

运算符,基本的加减乘除和赋值运算等//: 赋值运算符(=)var string = "张三"var(x,y) = (100,100)+-*/let a = 10 + 4let b = 10 - 4let c = 10 * 10let d = 10/2let e = 10.5/2.3//字符串的拼接也可以用+代替var newstring = "hi" + "playground"/

2016-11-14 16:44:14 159

原创 swift 学习笔记(6)-typealias

typealias:类型别名给类型起别名// 这样就声明了一个新的数据类型 distance, 对应的是doubletypealias distance = Double// 给元组从新定义一个类型typealias Person = (String,Int,String)var zhangsan:Person = ("wangwu",9,"hahe")print(zhangsan)可以看

2016-11-14 16:35:06 423

原创 swift 学习笔记(5)-元组

元组(可以认为一个指定了 key 的个数和名字的字典) 声明元组的方式:// 第一种var zhangsan = (name:"张三",age:19,gender:"man")// 第二种var lisi = ("李四",19,"man")基本使用: 元组经常会使用在函数的返回值中,间接的实现返回多个值// 修改var wangwu:(String,Int,String) = zhangs

2016-11-14 16:26:01 250

原创 swift 学习笔记(4)-字典Dictionary

字典创建方式// 创建方式// 第一种var zhangsan = Dictionary<String,String>()// 第二种var lisi = [String:String]()//第三种var wangwu = ["name":"王五"];基本使用 增删改查!// 如果字典中原来有这个 key, 就是修改,如果没有,就是增加// 增加字典wangwu["name2"]

2016-11-14 16:21:55 236

原创 swift 学习笔记(3)数组- Array

数组的声明方式//第一种:<> 里面放的是数组里面的元素的类型,数组里面智能有一种元素var names = Array<String>()names.append("name1")names.append("name2")//第二种 []中放数组的类型var names2 = [String]()//第三种var names3 = ["name1","name2","name3"]

2016-11-14 16:14:47 220

原创 swift 学习笔记(2)-可变类型

swift 中引入了可变类型,定义一个变量的时候,这个变量有可能有值,有可能为 nil,就在变量类型后面加一个? 表示.//可选类型的变量,有可能有值,有可能为 nilvar mySting:String?print(mySting)//:不能对值为 nil 的值强制解包//print(mySting!)mySting = "hello ,world"print(mySting)print

2016-11-14 16:10:44 336

原创 swift 学习笔记(1)-let 和 var

swift 中在定义变量的时候,没有了oc 中定义变量那么严谨,比如原来定义一个变量用的是这样的int a = 10;float b = 1.5;char c = "a";double d = 2.09;...现在统一定义变量用的 var,定义常量用的是 letlet a = 10;let b = 1.5var c = 1.99var d = "ahahah"swift 中加入了类型推

2016-11-14 15:47:19 225

原创 swift 学习笔记(MarkDown)

xcode 中在学习 swift 中加入了对 markdown 语法的支持,可以实时查看打开 xcode–>preferrence–>keybinding–>搜索 show rendered markup–>设置快捷键就行了(option +m) 当新建一个 page 的时候,活默认的有几句代码,这些注释用的是 Markdown 的语法添加的,上一页和下一页,按住刚才设置的快捷键就可以查看一下效果

2016-11-14 15:39:03 1053

原创 swift 基本语法(准备工作)

现在是 swift3.0了,基本语法相对稳定,应该不会再有很颠覆性的变化了,考虑可以入手尝试一下了,就写了,一些学习时候的代码练习,当做笔记,也顺便分享给大家,不喜勿喷,swift 小白,入门用.这里建议在 playground 中练习,不用编译,写完即可实时查看结果打开 xcode–>get started with a playground–创建一个工程(随便起一个名字)—>回车(点击 Next

2016-11-14 15:25:13 181

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-14 14:24:21 308

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-06 11:17:54 166

SwiftUI-Chinese.zip

SwiftUI官方中文版 及 swiftUI项目示例

2021-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除