- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 【iOS 开发】搜索栏控件 UISearchBar
目录iOS 搜索栏控件 UISearchBar1. UISearchBar 使用2. UISearchBarDelegate 协议详解附 Github 源码:iOS 搜索栏控件 UISearchBar1. UISearchBar 使用// 创建 UISearchBarlet searchBar = UISearchBar(frame: CGRect(x: 15, y: 1400, width: 350, height: 150))// 设置 UISearchBar 风格searchBar.s
2022-03-02 22:09:39
3582
1
原创 【iOS 开发】时间选择器控件 UIDatePicker
目录iOS 时间选择器控件 UIDatePicker1. UIDatePicker 计时器模式2. UIDatePicker 日期时间模式附 Github 源码:iOS 时间选择器控件 UIDatePicker1. UIDatePicker 计时器模式// 创建 UIDatePickerlet picker1 = UIDatePicker(frame: CGRect(x: 15, y: 1050, width: 350, height: 150))// 设置 UIDatePicker 模式p
2022-03-01 21:43:41
4997
原创 【iOS 开发】选择器控件 UIPickerView
目录iOS 选择器控件 UIPickerView1. UIPickerView 使用2. UIPickerView 设置数据3. UIPickerView 监听选中事件4. UIPickerView 设置图片视图附 Github 源码:iOS 选择器控件 UIPickerView1. UIPickerView 使用// 创建 UIPickerViewlet pickerView = UIPickerView(frame: CGRect(x: 15, y: 900, width: 350, heig
2022-02-28 21:45:13
3419
1
原创 【iOS 开发】步进器控件 UIStepper
目录iOS 步进器控件 UIStepper1. UIStepper 常规使用2. UIStepper 设置按钮图片附 Github 源码:iOS 步进器控件 UIStepper1. UIStepper 常规使用// 创建 UIStepperlet stepper = UIStepper(frame: CGRect(x: 25, y: 880, width: 0, height: 0))// 设置 UIStepper 颜色stepper.tintColor = UIColor.red//
2022-02-26 21:44:33
692
原创 【iOS 开发】进度条控件 UIProgressView
目录iOS 进度条控件 UIProgressView1. UIProgressView 常规使用2. UIProgressView 设置进度图片附 Github 源码:iOS 进度条控件 UIProgressView1. UIProgressView 常规使用// 创建 UIProgressViewlet progress1 = UIProgressView(progressViewStyle: UIProgressView.Style.default)// 设置 UIProgressView
2022-02-19 17:12:44
3181
原创 【iOS 开发】活动指示器控件 UIActivityIndicatorView
目录iOS 活动指示器控件 UIActivityIndicatorViewUIActivityIndicatorView 常规使用附 Github 源码:iOS 活动指示器控件 UIActivityIndicatorViewUIActivityIndicatorView 常规使用// 创建 UIActivityIndicatorViewlet activity1 = UIActivityIndicatorView(style: .medium)// 设置 UIActivityIndicatorV
2022-02-19 16:49:31
1224
原创 【iOS 开发】滑块控件 UISlider
目录iOS 滑块控件 UISlider1. UISlider 的常规使用2. UISlider 设置进度图片附 Github 源码:iOS 滑块控件 UISlider1. UISlider 的常规使用// 创建 UISliderlet slider = UISlider(frame: CGRect(x: 25, y: 750, width: 340, height: 30))// 设置 UISlider 的最大值slider.maximumValue = 100// 设置 UISlide
2022-02-13 14:06:11
2760
原创 【iOS 开发】基础控件:UISegmentedControl
目录iOS 基础控件 UISegmentedControl1. UISegmentedControl 的常规使用2. UISegmentedControl 动态更新 item附 Github 源码:iOS 基础控件 UISegmentedControl1. UISegmentedControl 的常规使用// 创建分段控制器let segmentedControl = UISegmentedControl(items: ["Home", "Circle"])// 设置 UISegmentedC
2022-02-12 19:08:02
2225
原创 【iOS 开发】基础控件:UIPageControl
目录iOS 基础控件 UIPageControl1. UIPageControl 的常规使用2. UIPageControl 添加交互事件附 Github 源码:iOS 基础控件 UIPageControl1. UIPageControl 的常规使用// 创建分页控制器let pageControl = UIPageControl(frame: CGRect(x: 25, y: 650, width: 280, height: 30))// 设置 UIPageControl 页数pageCo
2022-02-09 20:50:35
1792
原创 【iOS 开发】基础控件:UISwitch
目录iOS 基础控件 UISwitch1. UISwitch 的常规使用2. UISwitch 监听开关状态变化附 Github 源码:iOS 基础控件 UISwitch1. UISwitch 的常规使用// 创建开关控件let si = UISwitch()// 设置位置si.center = CGPoint(x: 50, y: 620)// 设置 UISwitch 开启状态的颜色si.onTintColor = UIColor.green// 设置 UISwitch 滑块的颜色
2022-02-08 22:28:56
1948
原创 【iOS 开发】基础控件:UITextField
目录iOS 基础控件 UITextField1. UITextField 的常规使用2. UITextField 设置监听事件附 Github 源码:iOS 基础控件 UITextField1. UITextField 的常规使用// 创建 UITextFieldlet textField = UITextField(frame: CGRect(x: 30, y: 550, width: 300, height: 40))// 设置 UITextField 的边框风格textField.bo
2022-02-07 22:21:41
1482
2
原创 【iOS 开发】基础控件:UIImageView
目录iOS 基础控件 UIImageView1. UIImageView 的使用2. UIImageView 播放桢动画附 Github 源码:iOS 基础控件 UIImageView1. UIImageView 的使用let uiImage = UIImage(named: "demo")let size = uiImage?.sizeprint(size?.width.description as Any, size?.height.description as Any)let imag
2022-02-06 11:40:39
715
原创 【iOS 开发】基础控件:UIButton
目录iOS 开发之基础控件 UIButton1. UIButton 常规使用2. UIButton 设置内容图片3. UIButton 设置背景图片附 Github 源码:iOS 开发之基础控件 UIButton1. UIButton 常规使用let uiButton = UIButton(type: UIButton.ButtonType.system)// UIButton 设置位置uiButton.frame = CGRect(x: 10, y: 230, width: 360, heig
2022-02-01 16:20:37
1319
原创 【iOS 开发】基础控件:UILabel
目录iOS 开发之基础控件 UILabel1. UILabel 的使用2. UILabel 设置可变属性文本附 Github 源码:[ViewController.swift](https://github.com/WeiLianYang/iOSAppDemo/blob/main/iOSAppDemo/ViewController.swift)iOS 开发之基础控件 UILabel1. UILabel 的使用// 创建 UILabel 控件let label = UILabel(frame: CG
2022-01-30 18:43:47
1332
原创 【Fix Bug】针对 Google Photos 返回的图片Uri,裁剪照片失败
目录一、问题背景二、定位原因三、解决办法1. 通过媒体库返回 Uri2. 通过照片墙读取 Uri3. 将图片缓存后生成 Uri附 Github 源码一、问题背景在选择 Google Photos 的照片后,会返回 uri,然后再去调用照片裁剪功能会失败。系统提示 “Error, could not load media” 或 “发生错误,无法加载媒体”。二、定位原因在选择 Google Photos 的照片后,返回的 uri 为:content://com.google.android.
2022-01-01 19:25:40
3709
2
原创 Android 11 适配 软件包可见性
一、软件包可见性说明如果应用以 Android 11(API 级别 30)或更高版本为目标平台,在默认情况下,系统会自动让部分应用对您的应用可见,但会隐藏其他应用。通过让部分应用在默认情况下不可见,系统可以了解应向应用显示哪些其他应用,这样有助于鼓励最小权限原则。注意:如果您的应用以 Android 10(API 级别 29)或更低版本为目标平台,那么全部应用均会自动对您的应用可见。即使您的应用以 Android 11(API 级别 30)或更高版本为目标平台,以下场景不会受影响:不会
2021-12-24 21:36:05
4931
1
原创 Kotlin 与 Java 相互调用
目录一、Kotlin 调用 Java1. kotlin 关键字转义2. kotlin 可将数组传给 java 的可变数量参数3. kotlin 获取对象的 java 类二、Java 调用 Kotlin1. java 调用 kotlin 类的属性和方法2. java 调用 kotlin 的顶级属性和顶级函数3. java 调用生成指定类名的 kotlin 属性和函数4. java 调用 kotlin 的伴生对象的方法和静态方法5. java 调用 kotlin 单例类的方法6. java 调用 kotlin
2021-12-11 21:44:41
8265
原创 Kotlin 注解
目录1. kotlin 定义注解2. kotlin 元注解3. kotlin 使用注解附 Github 源码:1. kotlin 定义注解注解属性在使用时指定,其后不会再变,只能声明为只读属性annotation class Annotation1(val name: String, val desc: String)annotation class Annotation2(val field1: Int, val field2: String)2. kotlin 元注解@Re
2021-12-10 21:36:41
2178
1
原创 Kotlin 泛型 型变、逆变、星号投影、reified、泛型上限
目录1. kotlin 定义泛型类2. kotlin 定义类型变3. kotlin 定义类逆变4. kotlin 定义调用处型变5. kotlin 定义调用处逆变6. kotlin 星号投影7. kotlin 定义泛型函数8. kotlin 使用 reified 修饰泛型9. kotlin 定义泛型上限附 Github 源码:1. kotlin 定义泛型类// 定义泛型类open class GenericDemo<T>(open var field: T? = null)// 继承
2021-12-09 22:40:11
2545
2
原创 Kotlin 基本数据类型
目录1. kotlin 数值型2. kotlin 布尔型3. kotlin 字符型4. kotlin 字符串5. kotlin 可空类型6. kotlin 类型相互转换7. kotlin 二进制、十六进制附 Github 源码:1. kotlin 数值型fun main() { // 整数型 val a: Byte = 1 // 8位 val b: Short = 2 // 16位 val c: Int = 3 // 32 val c2 = 3 // 默认整型
2021-12-07 15:29:41
1495
1
原创 Kotlin 异常处理
目录1. kotlin 捕获异常2. kotlin 先处理小异常,再处理大异常3. kotlin 使用 throw 抛出异常4. kotlin 自定义异常附 Github 源码:1. kotlin 捕获异常不论在 try 块、catch 块中执行怎样的代码(除非退出虚拟机 System.exit(1) ),finally 块的代码总会被执行// 定义顶级常量const val fileName = "src/com/william/testkt/exception_demo.txt"/
2021-12-06 21:59:16
3871
2
原创 Kotlin 对象、枚举、委托
Kotlin 对象、枚举、委托一、Kotlin 对象1. kotlin 伴生对象class Demo { val field: String = "demo field" // kotlin 定义伴生对象 companion object { // kotlin 定义常量 const val KEY_NAME = "key_name" // kotlin 模拟静态方法 @JvmStatic // 加注解实现
2021-12-06 11:05:00
1087
原创 Kotlin 扩展、抽象类、接口、内部类、嵌套类
Kotlin 扩展、抽象类、接口、内部类、嵌套类一、Kotlin 扩展扩展的本质:并没有真正修改所扩展的类,只是定义了一个函数,当调用扩展方法时,执行静态解析,由编译时类型决定,属于函数调用1. kotlin 扩展方法// 定义类class ExtClass { var field1: Int = 100 var field2: String = "value str"}/** * kotlin 定义扩展方法 */fun ExtClass.printField()
2021-12-05 20:38:00
554
原创 Kotlin 类、属性、方法、继承、多态
Kotlin 类、属性、方法、继承、多态一、Kotlin 类1. kotlin 定义类使用 open 修饰类,表明可被子类继承使用 open 修饰属性,表明可被子类覆写/** * Kotlin 使用 class 定义类 Phone,使用 open 修饰类,表明可被继承 * 主构造器参数 为 system 只读属性,可被覆写 * 所有属性均会自动生成 getter 或 setter 方法,val 修饰的只有 getter 方法 */open class Phone constru
2021-12-04 20:27:04
2277
2
原创 Kotlin 函数与 Lambda 表达式
Kotlin 函数 与 Lambda 表达式一、Kotlin 函数1. kotlin 定义函数/** * 定义函数。无参,无返回值。 * 也可以使用 Unit 表明没有返回值,同 Java 的 void */fun function1() { println("no params func")}/** * 定义函数,返回2个参数拼接的结果字符串 * * @param param1 int * @param param2 String * @return String
2021-12-03 23:30:14
835
1
原创 Kotlin 数组及常用方法
Kotlin 数组及常用方法1. kotlin 创建数组val arr1 = arrayOf(1, 2, 3)val arr2 = arrayOf("1", "2", "3")// 指定长度为 3 的整型数组,初始化值为 nullval arr3 = arrayOfNulls<Int>(3)// 创建类型为 String 的空数组val emptyArr = emptyArray<String>()// 创建基本类型的数组val arrInt = intArra
2021-11-30 22:00:14
11828
原创 Kotlin 循环、流程控制:if-else、when、for-in
Kotlin 流程控制一、kotlin if-else 判断结构1. if-else 简单判断val bool = trueif (bool) { println("bool is true")} else { println("bool is false")}2. if-else-if 判断结构val score = 85if (score > 90) { println("score > 90,优秀")} else if (score &
2021-11-29 21:56:14
1074
原创 Kotlin 运算符
Kotlin 运算符1. kotlin 单目运算符var field = 1// kotlin 自增运算符field++++fieldfield.inc() // 同自增运算// kotlin 自减运算符field----fieldfield.dec() // 同自减运算println(field) // 12. kotlin 双目算术运算符var a = 3val b = 4var result = 0result = a + b // 7,同a.plus
2021-11-29 17:32:22
1262
原创 Swift 高级特性
Swift 高级特性一、Swift 独占访问Swift 内存安全检查:当两个变量访问同一块内存时,会产生独占内存访问限制。发生读写权限冲突的情况:inout 参数读写冲突结构体中函数修改成员属性读写冲突值类型属性读写冲突1. inout 参数读写冲突// 1. Swift inout 参数读写冲突var inputStr = "input"func plusSlef1(_ param: inout String) { // 在 >= Swift4 版本会抛异常
2021-11-27 21:03:09
1767
原创 Swift 类型转换、泛型、扩展与协议
Swift5 类型转换、泛型、扩展与协议1. Swift 判断值类型// Swift5 判断值类型var anyObj: Any = 1if anyObj is Int { print("anyObj's type is Int")} else if anyObj is String { print("anyObj's type is String")}2. Swift 判断引用类型// Swift5 判断引用类型class Base { var tex
2021-11-25 23:16:46
1445
原创 Swift 内存管理与异常处理
Swift5 内存引用与异常处理1. Swift 内存销毁时机// Swift5 内存销毁时机// 引用类型的内存销毁时机class ClassDemo { var a = "value a" deinit { // 实例被释放 print("deinit class a") }}// 可空类型var ins1: ClassDemo? = ClassDemo()var ins2 = ins1var ins3 = ins2in
2021-11-23 22:09:51
1847
原创 Swift 构造方法
Swift5 构造方法1. Swift 类的构造方法// Swift5 类的构造方法// 1. 在构造方法中需要给没有默认值的属性初始化值class Demo1 { // 含有默认值 var param1: String = "default" // 未指定默认值,需要在 init() 中初始化 var param2: String // 未指定默认值,类型为 Optional,可空, // 默认值为 nil, 不需要在 ini
2021-11-21 19:21:00
1765
原创 Swift 属性与方法
Swift5 属性与方法1. 存储属性2.3.4.5.6.GitHub 源码:Property&Method.playground
2021-11-19 20:57:34
1492
原创 Swift 结构体与类
Swift5 结构体与类在以下情况时推荐使用结构体,其他情况请使用类:只需要少量的简单数据类型的属性在传输数据时需要复制而不是影响原变量不需要继承其他类1. 结构体结构体可以定义属性和方法,像是一组数据类型的集合,不可继承,属于值类型// 定义结构体struct Phone { // 定义价格属性 var price: Int // 定义品牌属性 var brand: String // 定义型号属性
2021-11-17 22:23:00
1767
1
原创 Swift 高级运算符与枚举
Swift5 高级运算符与枚举1. 位运算符// Swift 位运算var sixteen: UInt8 = 0b00010000 // 二进制print(sixteen) // 8// Swift 按位与 & : 操作数相同的位进行逻辑与运算// 即两个对应位的值都为1,结果为1,否则为0。示例:var result1 = sixteen & 0b00001111 // 0var result2 = 0b00000111 & 0b00000001 // 1/
2021-11-16 21:48:58
1696
原创 Swift 函数与闭包
Swift 函数与闭包1. 创建函数// 创建函数,无参,无返回值,同 func func1() -> Voidfunc func1() { print("no params func")}func1()// 创建函数,带参,带返回类型func func2(param: Int) -> Bool { return param > 60}func2(param: 80)// 创建函数,带多个参数,返回类型为元组func func3(param1
2021-11-11 22:18:28
2262
原创 Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else
Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else1. 运算符:三目,空合并,区间运算符// 元组比较大小。需要元素个数一致,对应的位置的元素类型相同,每一个元素都必须支持比较运算操作。// 从第一个元素开始比较,如果没有比较出结果,那么继续依次比较,直到比出结果为止。var a = (1, 2, "3")var b = (1, 2, "4")var c = a < b // true// 条件判断i
2021-11-09 21:39:03
2204
1
一款好玩的弹幕神器,下载体验
2020-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人