# Swift CGFloat 扩展
## 1. 引言
在 Swift 编程语言中,CGFloat 是一个定义了浮点数的数据类型,用于表示图形界面的尺寸、位置等信息。在编写 iOS 或 macOS 应用程序时,经常需要对 CGFloat 类型进行一些数学运算和转换。为了简化开发过程,我们可以通过扩展 CGFloat 类型,为其添加一些常用的方法和属性,使其更加灵活和便捷。本文将详细介绍如何扩展
原创
2023-10-14 04:22:45
209阅读
import UIKit/*总结:1:给UIButton写分类,新建文件swiftFile,一般为了区分起名字都是名字-Extension,要想调用UI控件需要导入 import UIKit框架,然后给系统的类写分类:extension UIButton {},提供类方法或是构造函数的方法,把与该控件有关的业务逻辑全封装在分类的内部。2:封装方法:类方法:都是以class开头,class func
转载
2023-07-28 22:30:22
51阅读
Swift 运算符运算符是一个符号,用于告诉编译器执行一个数学或逻辑运算。Swift 提供了以下几种运算符:算术运算符比较运算符逻辑运算符位运算符赋值运算符区间运算符其他运算符本章节我们将为大家详细介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符及其他运算符。算术运算符以下表格列出了 Swift 语言支持的算术运算符,其中变量 A 为 10,变量 B 为 20:运算符描述实例+加号A
view坐标系原点在左上角。 let rect = CGRect(x: 0, y: 0, width: 100, height: 1...
转载
2020-07-10 01:11:00
170阅读
2评论
view坐标系原点在左上角。 let rect = CGRect(x: 0, y: 0, width: 100, height: 1...
转载
2020-07-10 01:11:00
244阅读
2评论
1 协议中可以定义属性 (1)属性不可以有默认值 (2)必须设置是“get”还是“get set”,注意:get与set之间是没有逗号的 (3)即使属性只有get,没有set,也不可以将属性设置为let,必须设置为var2 协议中可以定义方法 (1)方法的参数不可以有默认值 protocol Pet {
// 定义属性
var name: Strin
转载
2023-12-25 20:52:53
110阅读
协议声明使用 protocol来声明协议。protocol ExampleProtocol {
var simpleDescription: String { get }
mutating func adjust()
}协议的遵循类、枚举以及结构体,都可以遵循某个协议。类class SimpleClass: ExampleProtocol {
var simpleDescr
转载
2023-10-07 15:22:30
72阅读
在使用[UIColor colorWithRed:(CGFloat) green:(CGFloat) blue:(CGFloat) alpha:(CGFloat)]方法的时候要注意以下两点: 1、参数是CGFloat的要写成例如1.00f这种形式。 2、每个参数都要除以255.0f,也就是要写成1.0f/255.0f...
原创
2022-08-06 00:54:38
108阅读
扩展就是向一个已有的类、结构体或枚举类型添加新功能。 扩展可以对一个类型添加新的功能,但是不能重写已有的功能。 Swift 中的扩展可以: 添加计算型属性和计算型静态属性 定义实例方法和类型方法 提供新的构造器 定义下标 定义和使用新的嵌套类型 使一个已有类型符合某个协议 语法 扩展声明使用关键字
转载
2021-08-13 09:42:02
158阅读
扩展可以给一个现有的类,结构体,枚举,还有协议添加新的功能。它还拥有不需要访问被扩展类型源代码就能完成扩展的能⼒(即逆向建模)。扩展和 Objective-C 的分类很相似。(与 Objective-C 分类不同的是,Swift 扩展是没有名字的。)Swift 中的扩展可以: 1.添加计算型实例属性和计算型类属性 2.定义实例方法和类方法 &n
转载
2023-12-01 14:27:36
0阅读
教你如何用Swift编写Xcode插件在我的AppCode项目创建过程中,我想念最多的一件事是:能跳转到记录控制台信息的指定文件和行。Xcode不提供这样的功能,而我不是一个喜欢抱怨的人,所以我决定自己写个插件。我用Swift来编写这个插件。想法如果一个控制台记录了fileName.extension:XX 这样一个名字,转换成可点击的超链接,这个链接将会打开指定的文件并将那行代码高亮。那样你可以
/**1.扩展语法2.计算型属性3.构造器方法下标6.嵌套类型OC中的分类(category)类似。不过与OC不同的是,swift的扩展没有名字。 如果定义一个扩展向已有类型添加新功能,那么这个心功能对该类型的所有已有实例中都是可用的,即使他们是在换个扩展的前面定义的 */ //扩展语法 /**extension extension SomeType {加到SomeType的新功能写到这 }
转载
2023-08-11 17:49:00
96阅读
# 如何实现Swift扩展合集
## 概述
在Swift中,扩展(Extensions)是一种非常有用的方式来给已有的类、结构体、枚举或协议添加新的功能。扩展可以包括方法、计算属性、下标、协议等。本文将向你介绍如何实现Swift扩展合集,让你的代码更加模块化和易于维护。
## 实现步骤
下面是实现Swift扩展合集的步骤,我们将通过表格展示每个步骤的具体操作:
| 步骤 | 操作 |
|
原创
2024-02-19 06:01:09
20阅读
最近为公司项目中添加自动加载更多功能,于是将公司里下拉刷新和加载更多功能单独抽出来,放在UITableView的category中,可以做到无侵入添加这些功能,使得很多老代码只需要几句代码,即可实现这些功能。具体代码及使用方法:UITableView+PullData,其实实现逻辑很简单,基本看完代码就能完全理解,但是在实现的时候,遇到了一些问题,下面内容主要讲讲我是如何去解决这些问题的。首先,公
转载
2024-10-24 10:45:58
34阅读
# Swift 扩展属性
扩展(Extension)是 Swift 语言中一种非常强大的功能,它可以为已有的类、结构体、枚举或协议添加新的功能。除了可以添加方法,扩展还可以添加计算型属性,这被称为扩展属性。本文将介绍 Swift 中扩展属性的使用方法,并通过代码示例详细说明。
## 什么是扩展属性?
扩展属性允许我们为已存在的类型添加新的计算型属性,而无需修改该类型的源代码。这对于扩展现有的
原创
2023-12-13 05:35:35
93阅读
本页包含内容:理解内存访问冲突 In-Out 参数的访问冲突 函数里 self 的访问冲突 属性的访问冲突 更新历史 默认情况下,Swift 会阻止你代码里不安全的行为。例如,Swift 会保证变量在使用之前就完成初始化,在内存被回收之后就无法被访问,并且数组的索引会做越界检查。Swift 也保证同时访问同一块内存时不会冲突,通过约束代码里对于存储地址的写操作,去获取那一块内存的访问独占权。因为
转载
2023-12-11 10:37:10
22阅读
//***********swift学习之27--扩展--***************************
/*
扩展跟OC一样就是向一个已有的类、结构体或枚举类型添加新功能。
只能添加新的功能,不能重写已有的功能。
*/
// 扩展声明使用关键字 extension:
// 一个扩展可以扩展一个已有类型,使其能够适配一个或多个协议,语法格式如下:
// extension Some
转载
2023-12-18 11:23:18
28阅读
Swift和大部分语言一样都提供了结构体(Struct)。结构体这个概念最早是出现在C语言中,不过在C语言中没有类(Class)的概念,所以那时结构体也就不会引起混淆,不过在Swift中,结构体和类有许多相似的地方,所以也就经常引起混淆。下面就列举一下Swift中结构体和类的相似点:* 支持定义属性* 支持定义方法,这些方法用于实现与类和结构体相关的
转载
2023-05-26 20:39:30
122阅读
# iOS CGFloat 转 int 实现方法
## 引言
在iOS开发中,我们经常需要进行数值类型的转换操作。其中一个常见的需求是将CGFloat类型的数值转换为int类型的数值。本文将教你如何实现这个转换过程。
## 步骤概览
下面是整个转换过程的步骤概览。我们将使用一个表格来展示每个步骤和相应的代码实现。
步骤 | 代码 | 说明
--- | --- | ---
1. 获取要转换的C
原创
2024-02-16 03:17:36
415阅读
Swift语言的类扩展是一个强大的工具,我们可以通过类扩展完成如下事情:1,给已有的类添加计算属性和计算静态属性2,定义新的实例方法和类方法3,提供新的构造器4,定义下标脚本5,是一个已有的类型符合某个协议(注意:扩展只能添加新的计算型属性,不能添加存储型属性,也不能添加新的属性监视器)示例1:给字...
转载
2015-09-25 14:29:00
116阅读
2评论