![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS开发
々云逸
这个作者很懒,什么都没留下…
展开
-
Swift GCD 使用心得
本文最初发布在我的个人博客站点上。如有想沟通交流的同学,请移步 swift GCD 进行评论目录基础知识iOS 多线程实现方式并发和并行同步和异步串行队列和并行队列线程和调度队列调度队列 (DispatchQueue)主队列 (Main Queue)全局队列 (Global Queue)自定义队列 (Custom Queue)调度任务 (DispatchWorkItem)「当前线程」基本使用DispatchQueue 的同步/异步执行DispatchGroup 的使用场景一:多个网络接口同时开始请求,.原创 2022-02-07 22:23:54 · 1933 阅读 · 2 评论 -
Apple silicon芯片的Mac安装cocoapods(无需rosetta)
前些日子买的m1 max 芯片的MacBook Pro今天到了,配置环境费了我好大功夫,尤其是配置cocoapods。网上看到的 apple 芯片安装 cocoapods 大都是通过 rosetta 的方式进行的,但是我尝试之后发现其实没必要这样做。我的配置步骤如下:安装 brew,这个在brew官网就有脚本,粘贴执行即可。安装 rbenv,并通过其安装最新的 ruby(我装的是3.0.3)。安装最新的 ruby 后,将其设置为默认brew install rbenvrbenv init #记原创 2021-12-04 01:57:41 · 459 阅读 · 0 评论 -
2021-11-05 iOS 设置 UILabel 内容显示不下时自动缩放字体
private let dataLabel = UILabel().then { $0.font = UIFont.kep_digitalBoldSize(18) $0.textColor = .white $0.numberOfLines = 1 $0.adjustsFontSizeToFitWidth = true // 设置允许自动缩放 $0.minimumScaleFactor = 0.70 // 缩放比例 ...原创 2021-11-05 15:24:56 · 1145 阅读 · 0 评论 -
swift 判断字符是不是汉字
判断字符是不是汉字的条件为"\u{4E00}" <= s && s <= "\u{9FA5}",其中s即位要判断的字符。var greeting = "Hello, 你好呀lalala"for s in greeting { if "\u{4E00}" <= s && s <= "\u{9FA5}" { print("我是\(s), 是汉字") }}// output// 我是你, 是汉字// 我是好,原创 2021-09-12 19:01:47 · 1138 阅读 · 0 评论 -
iOS 根据字符串和字体计算所需label宽度
有时候需要根据一个字符串的内容和所用字体,计算显示这个字符串所需要的label宽度。可以使用以下方法计算:var greeting = "Hello, playground"let size = greeting.size(withAttributes: [.font: UIFont.systemFont(ofSize: 12)])print(size.width)输出:98.94140625然后使用ceil()对计算结果向上取整,即可得到所需要的宽度...原创 2021-09-12 18:53:26 · 521 阅读 · 0 评论 -
iOS应用内部浮窗实现
目录项目介绍环境依赖项目地址项目介绍本项目能在iOS应用内部生成一个悬浮窗,可用于应用间跳转、浮窗小组件等场景。项目基于UIWindow实现,可以设置浮窗的显示级别、设置浮窗能否被拖离屏幕、浮窗动画等。如下图所示环境依赖基础环境:Xcode Version 12.5.1,Swift version 5.1.3。项目使用 swift 编写,不含OC项目使用 CocoaPods 管理第三方库,运行项目前请先执行 pod install 安装第三方库,包括 SnipKit、Lookin、The原创 2021-09-12 17:51:49 · 1792 阅读 · 0 评论 -
iOS语法Tips(持续更新)
目录if...case...if…case…有时候一个变量的值会有很多种情况,但是我们只对其中一种情况关心。这时候如果使用switch语句的话,是这样的:switch value {case A: //codedefault: break}但是这样会显得代码很冗长。我们可以用更加简洁且具备更强大模式匹配功能的if...case...语句:if case A,B { //code}其中,A、B代表两个条件分支。例如对年龄的判断var age = 23if case 20...原创 2021-07-18 00:17:24 · 102 阅读 · 1 评论