swift
文章平均质量分 53
烟花下的孤独
万事开头难
然后中间难
最后结尾难
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Swift 日常开发规范
《Swift 开发规范》发布之后得到了很多 Swifter 的关注,很多读者提议最好为每条规约添加一些代码示例,其实在发布之前,我就考虑到要加代码示例这件事,但是后来还是因为偷懒没加。最近利用了空余时间,对之前的版本进行了完善,加入了代码示例及编译效率规约等等,并且考虑到读者对某些规约有些疑惑,也为部分规约增加了说明,推出新的版本 --《Swift 开发规范 - 修订版》。《Swift 开发规范》后续更新不会再另发文章,后续更新地址为:《Swift 开发规范》本文为转载规约分为【强制】、【推荐】两大类。“说转载 2022-07-08 10:18:15 · 603 阅读 · 0 评论 -
SwiftUI 网络请求以及数据加载
SwiftUI 网络请求以及数据加载原创 2022-06-02 11:29:43 · 4702 阅读 · 2 评论 -
UITableView reload刷新闪动问题
前言Xcode 13.3.1iOS 11.3.1先说下我这遇到的情况,1、tableView 刷新时候闪动、或者定位出错2、tableView刷新 + scrollToRow 滚动 闪动1、tablwView预设高度tableView.rowHeight = UITableView.automaticDimension //snpkit 自适应高度tableView.rowHeight = 0 //手动设置高度 tableView.estimatedRowHeight = UITab原创 2022-05-19 09:58:29 · 3281 阅读 · 0 评论 -
iOS 多个TableView嵌套滚动处理
前言此次项目中遇到了两类UITableView嵌套使用的场景,里面遇到了一些问题,所以就写此文章记录一下1. UITableView 嵌套 UITableView,从顶部下拉刷新这个很多APP上都有应用,原创 2022-05-15 16:48:09 · 3045 阅读 · 0 评论 -
iOS 计算图文富文本的宽高
# 计算高度因为富文本中带有网络图片,所以要计算出图片宽度的富文本宽高1、网上很多方法我看都计算不出来,我再 img 标签后面给网络图片添加个宽度,就可以了(可能是因为我们的富文本不规范吧,img标签都没有设置width)...原创 2022-05-14 16:38:43 · 1810 阅读 · 0 评论 -
UITextView 加载富文本(带图文)
1、前言iOS 10.0Xcode 13.3.1SwiftRichString 4.0.0本来我们UI制定的图上面只是文字,但是由于后台输入框能添加图片,我们原定只加载文本,变成了富文本,样式如下1.1、情景1,本来做题页面,题目、选项、答案中都可能会出现一个或多个图片,1.2、情景2 一个AI互动页面,简单的虚拟聊天,聊天内容可能会出现多个图片 2 解决方法2.1 计算富文本宽高因为富文本中带有网络图片,所以要计算出图片宽度的富文本宽高1、网上很多方法我看都计算不出来,我再 img原创 2022-05-13 10:30:03 · 2048 阅读 · 0 评论 -
Swift 圆形进度条
demo 传送门demo效果图前言ios 10.0因为 UI 做了一些很别致的进度条效果图,而且在网上又找不到合适的三方库,自己在网上查查资料做了出来,然后整理了一下,分享给大家使用首先,这个东西只是用贝赛尔曲线做出来的,并不是很难,做出来只是略微麻烦一点,网上也有很多资料,不过并不是很多,所以我就整理了一下,一是整理备份一下记录,二是分享给大家看下1、绘制这个断断续续的进度条UI 设计很漂亮,但是由于数据过多或过少,导致太难看,最后放弃1.1 初始化一个贝塞尔直线///贝塞尔直线原创 2022-04-27 22:39:00 · 3622 阅读 · 0 评论 -
Swift 使用AVPlayer 和 AVPlayerItem 做语音播放
前言:最近工作内容用到了语音播放,从 AVPlayer 到 AVPlayerItem, 期间遇到挺多问题,趟了很多 bug, 也总结了一些心得。对 AVPlayer 了解的更多一些,因为涉及点比较多,所以打算做一个系列详尽的写一下这部分内容。希望大家多多支持,有问题的地方欢迎指正。AVPlayer 是一个可以播放任何格式的全功能影音播放器支持视频格式: WMV,AVI,MKV,RMVB,RM,XVID,MP4,3GP,MPG 等。支持音频格式:MP3,WMA,RM,ACC,OGG,APE,FLAC,原创 2022-04-20 13:43:37 · 4196 阅读 · 1 评论 -
Swift 使用 UISlider
UISlider 跟 UISwitch 有点儿类似,都是继承自 UIControl既然 UISlider 是表示一个 CGRange,那么就有一个最大值(maximumValue)和一个最小值(minimumValue),既然 UISlider 又是一个选择器,那么就有一个当前的选择值(value),这三个值都是 UISlider 的属性。同样的,UISlider 选择器被改变时,会触发 UIControlEventValueChanged 的事件,所以我们可以通过添加 addTarget::: 方法.原创 2022-04-19 15:52:57 · 2948 阅读 · 0 评论 -
iOS 移除上一个push跳转的ViewController
前言:虽然项目中用的不多,但是有时候要用,就像订单之前的页面需要移除等等,而且代码老忘,网上有记录,但是不多,找起来可麻烦,所以再次记录一下。案例:push跳转,跳转到下一个页面后,移除当前页面,点击返回,返回到当前的上一级页面。使用方法:最好是push 之后直接使用,方便省事。上代码:Objective-CNSMutableArray *array = self.navigationController.viewControllers.mutableCopy;[array removeO原创 2022-04-11 15:29:29 · 3100 阅读 · 1 评论 -
iOS 组件化加载 图片、gif、xib等文件
前言xcode 15.3ios 10.0起因,因为公司要使用保利威视的视频使用,我拿来他们的Module来封装做成组件来用,但是他们的xib文件一直是nil,为此困扰了我好久说明在组件化中,你的.assets中的图片,文件夹中的图片、gif图片,xib文件,json文件等都需要进行处理,否则加载不了1、在podspec设置生成bundle文件在你的组件化文件pod -> .podspec文件中设置PolyvOpenSourceModule/Assets.xcassets: 设置加载A原创 2022-04-01 16:32:11 · 3443 阅读 · 0 评论 -
swift UITableview 刷新某一个 cell 或 section
虽然很简单,但是有时候会忘记,网上都是oc的资料,所以就记录一下UITableView刷新指定的 section刷新第2个sectiontableView.reloadSections([2], with: .none)UITableView刷新指定的 row刷新第0个section 第0行ableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .none)...原创 2022-03-31 11:18:01 · 3502 阅读 · 0 评论 -
SwiftUI 输入框(TextEditor 和 TextField、SecureField)
前言xcode 13.3iOS 15.4TextField 明文显示的输入框文字输入框,相当于OC的UITextFieldTextFieldStyleTextField 有自己的风格,给我们提供了一些选项:1、PlainTextFieldStyle:.textFieldStyle(.plain)A text field style with no decoration.没有装饰的文本字段样式。2、DefaultTextFieldStyle: TextField 的默认样式,在 i原创 2022-03-19 13:38:27 · 6833 阅读 · 0 评论 -
‘windows‘ was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead
添加一个iOS15 的判断,问题解决,亲测有效public var K_StatusHeight: CGFloat { get { if #available(iOS 15.0, *) { let keyWindow = UIApplication.shared.connectedScenes .map({ $0 as? UIWindowScene }) .compactMap({ $0 }).原创 2022-03-11 14:32:20 · 4202 阅读 · 0 评论 -
SwiftUI 设置圆角、边框
前言xcode 13.2ios 15.21、我这是创建一个 button ,其他的也一样Button("登录/注册") { } 2、当我按照swift 上的习惯使用 cornerRadius, border 设置圆角边框时Button("登录/注册") { }.padding(EdgeInsets(top: 10, leading: 15, bottom: 10, trailing: 15)).cornerRadius(15).border(.blue, width原创 2022-03-10 10:22:21 · 6182 阅读 · 0 评论 -
SwiftUI 自定义颜色设置
前言xcode 13.2ios 15.2SwiftUI颜色为 Color不同于Swfit 的颜色 UIColor ,Swift 的颜色定义为 Color,///颜色设置 R、G、B Apublic func RGBA(_ red: Int, _ green: Int, _ blue: Int, _ alpha: Double) -> Color { return Color(.sRGB, red: CGFloat(red) / 255.0, green: CGFloat(gre原创 2022-03-09 11:40:27 · 2078 阅读 · 0 评论 -
SwiftUI 设置底部TabBar(tabItem)
SwiftUI设置底部TabBar,设置二级页面隐藏处理原创 2022-03-09 11:38:25 · 4373 阅读 · 0 评论 -
swift 使用Moya进行网络请求
前言环境 pod 'Moya', '14.0.0' Xcode 13.2用法1、定义协议 TargetTypelet gitHubProvider = MoyaProvider<YLHub>()public enum YLHub { case zen case version([String: Any])}extension YLHub: TargetType { public var baseURL: URL { URL(string: "h原创 2022-02-23 11:13:11 · 4089 阅读 · 0 评论 -
iOS 实现渐变色文本
前言前段时间工作中,产品给了一个实现渐变色文本,并且是放到富文本里面的需求。插入到富文本这里先不说,无非就是生成这个渐变 Label 的一张 Image 插入到富文本。相信大家第一时间可能会去度娘寻求答案,并且马上就能搜索出答案。这里我们来聊聊几种方案的实现,以及产生的问题。方案一基于 CAGradientLayer 做一个 mask, 核心代码大概如下。 override func layoutSubviews() {super.layoutSubvi...转载 2022-01-14 18:26:20 · 1437 阅读 · 0 评论 -
iOS 导航栏隐藏和显示
1: 导航栏隐藏、显示之间跳转iOS 导航栏对于隐藏造成的动画 可以通过在 viewWillAppear 和 viewWillDisappear 来设置完成- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:animated];}- (void)viewWillDis原创 2022-01-07 15:20:14 · 3245 阅读 · 0 评论 -
iOS 之 App 权限
1、App 权限 注意:没加相关权限,程序可能直接崩溃!网络 https<!-- 网络https --> <key>NSAppTransportSecurity</key><dict> <key>NSAllowsArbitraryLoads</key> <true/></dict>相机相册<!-- 相机 --> <key>NSCameraUsageDes原创 2021-12-13 17:15:43 · 1086 阅读 · 0 评论 -
YYImage的 YYAnimatedImageView 无法加载网络图片
前言:为了在tableview 中更刘畅的加载 gif图片1、使用 SDWebImage 的 SDAnimatedImageView 加载 gif 图片,少量无伤大雅,可以使用,大量会导致卡顿、崩溃2、使用 YYWebImage 的 YYAnimatedImageView 加载 gif 图片,效果非常好,在 tableview 里边中没有卡顿现象,3、使用 swift 的 Kingfisher 中的 AnimatedImageView 加载 gif 图片,这个和 SDWebImage 效果相差不大但原创 2021-12-24 14:18:00 · 2764 阅读 · 0 评论 -
swift 可选协议
前言xcode 13.2.1swift 5.4swift 协议 protocol YLLiveStreamListCellDelegate: NSObjectProtocol { func LiveStreamListCell(_ cell: YLLiveStreamListCell)}swift可选协议协议前添加 @objc ,把你想要改成的可选协议前添加 @objc optional 即可@objc protocol YLLiveStreamListCellDelegate原创 2021-12-24 10:35:08 · 1468 阅读 · 0 评论 -
Xcode Message from debugger: Terminated due to memory issue
前言:环境Xcode 13.2.1switft 5.4Message from debugger: Terminated due to memory issue来自调试器的消息:由于内存问题而终止问题描述:1、 通过 TZImagePickerController 不断的切换gif图片的过程中崩溃(在同一个页面),问题原因描述:我一直认为是通过tz不断调整,消耗内存过大导致,最后一个偶然的机会发现,是sdwebimage加载gif,但是gif图片多次变幻导致!解决方法:添加 FLAn原创 2021-12-21 18:35:21 · 2579 阅读 · 0 评论 -
iOS 退出 APP :用代码实现点击 Home 键退出的功能
总所周知,iOS 退出强制退出 APP 的方法有四种。网上都有大量的文章对此进行描述,再次就不一一列举了exit();abort();assert();主动制造一个崩溃;一个偶然的计划,突然发现 B612相机,点击不同意用户协议,直接返回到手机桌面,就行按 home 键了一样,打开之后还是原页面!为此找了很多资料,找到了实现方法,特此给大家分享一下(网上都是强制退出的,这种退出很少,我是第一次见,请诸位大佬原谅我的无知)用代码实现点击 Home 键退出的功能只需调用下面一行代码就 OK .原创 2021-11-11 14:31:49 · 3896 阅读 · 0 评论 -
RxSwift 学习:基础使用篇 - 序列 订阅 销毁
RxSwift 学习:基础使用篇 - 序列 订阅 销毁 1. RxSwift 简介RxSwift 的作用1)在编写代码时我们经常会需要检测某些值的变化(比如:textFiled 输入值的变化、数据请求完成或失败的变化),然后进行相应的处理。过去针对不同的情况,我们需要采用不同的事件传递方法去处理,比如:delegate、notification、target-action、KVO 等等。而 RectiveX ...转载 2021-10-29 18:19:44 · 1350 阅读 · 0 评论 -
swift 生成 framework
前言环境Xcode 13.0 iOS 15.0 1、创建工程command + shift + N, 选中 Framework & Library 下的 framework,然后 next输入framework 名称,next 创建成功2、修改配置信息 Build Settings①Dead Code Stripping 设置为 NO②Mach-o type 设置为 Static Library③Architectures添加 armv7s④Build Activ原创 2021-10-16 16:45:25 · 1158 阅读 · 0 评论 -
swift framework 中加载图片
前言环境Xcode 13.0 iOS 15.0 一、直接作为资源文件打包到 framework 中去,编译导出即可加载方式://xxx你的 framework 名 @@你的图片名imageview.image = UIImage(named: "xxx.framework/@@")查看资料: ios framework 使用图片资源二、图片放到 framework 中的 bundle 里面备注:网上很多都是 framework 和 bundle 分开打包使用的,几乎找不到bu原创 2021-10-16 15:38:40 · 1618 阅读 · 0 评论 -
Swift 项目编译时间的分析与优化
iOS 独立开发|Swift 项目编译时间的分析与优化 前言本文将从代码层面探究如何分析并优化 Swift 代码的编译速度。这里就拿我个人项目(小白鼠)梦见账本来进行一次优化吧。更多 iOS 独立开发相关文章欢迎移步专栏「Lawliet 的独立开发碎碎念」Wechat: RyukieW 公众号:LabLawliet???? 技术文章归档???? Github 我的个人项目扫雷 Elic 无尽天梯梦见账本类型游戏财...转载 2021-10-13 16:10:56 · 680 阅读 · 0 评论 -
Swift 开发规范
前言开发规范的目的是保证统一项目成员的编码风格,并使代码美观,每个公司对于代码的规范也不尽相同,希望该份规范能给大家起到借鉴作用。本文为转载命名规约代码中的命名严禁使用拼音及英文混合的方式,更不允许直接出现中文的方式,最好也不要使用下划线或者美元符号开头;文件名、class、struct、enum、protocol 命名统一使用 UpperCamelCase 风格;方法名、参数名、成员变量、局部变量、枚举成员统一使用 lowerCamelCase 风格全局常量命名使用 k 前缀 + Upper转载 2021-10-13 15:23:56 · 416 阅读 · 0 评论 -
Swift 提高代码质量
使用 Swift 提高代码质量 前言京喜APP 最早在 2019 年引入了 Swift,使用 Swift 完成了第一个订单模块的开发。之后一年多我们持续在团队 / 公司内部推广和普及 Swift,目前 Swift 已经支撑了 70%+ 以上的业务。通过使用 Swift 提高了团队内同学的开发效率,同时也带来了质量的提升,目前来自 Swift 的 Crash 的占比不到 1%。在这过程中不断的学习 / 实践,团队内的 C...转载 2021-10-13 09:46:00 · 458 阅读 · 0 评论 -
Swift 打印 log 所在的文件和行数
在 OC 中,我们经常用到下面这种打印,使用 NSlog打印 log 所在的文件和行数。#ifdef DEBUG #define NSLog(format, ...) printf("\n[%s] %s [第%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);#else#define NSLog(format, ...)#endi原创 2021-10-01 10:52:47 · 604 阅读 · 0 评论 -
swift 使用 Alamofire 网络请求
首先这是摘抄自大神的网络请求,后台非常规范的时候建议使用,我再此基础上稍微改了下,也不知道有没有弄巧成拙headers 里面内容可看我前面的文章 iOS 获取设备信息 (OC/Swift)import HandyJSONimport Alamofireimport CocoaLumberjack // MARK: 5.getter private static let msgNetError = "网络错误,请联网后点击重试" private static let msgD原创 2021-10-01 09:29:54 · 1392 阅读 · 0 评论 -
iOS 格式化电话号码 (3 4 4 位空格分割)
在文本框输入电话号码时,按照 3 4 4 的格式动态显示(如 130 1234 1234)首先添加上UITextField的代理 UITextFieldDelegateswift private var phoneContent = "" private var previousSelection = UITextRange() private lazy var textFieldPhone: UITextField = { let newTextFie原创 2021-09-26 10:53:29 · 1175 阅读 · 0 评论 -
iOS 15 适配笔记
在 升级xcode 13.0 之后,正式开始支持 iOS15,就需要做适配 iOS15了,在 xcode 13.0 之前的就不会有什么影响的1、从 iOS 15 开始,UINavigationBar、UIToolbar 和 UITabBar 在控制器中关联滚动视图顶部或底部时使用 scrollEdgeAppearance和standardAppearance 配置相关属性 - 背景、字体等swift导航栏 if #available(iOS 15.0, *) {原创 2021-09-22 10:34:04 · 1597 阅读 · 0 评论 -
UITableView.Style plain grouped
styleUITableView 的展示方式//表头tableView.tableHeaderView //区头 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 0.001 } func tableView(_ tableView: UITableView, viewForHeaderInSection .原创 2021-07-10 09:31:28 · 226 阅读 · 0 评论 -
swift 获取导航栏底部线
获取导航栏底部阴影线,设置隐藏(iOS 15.0 之前可用)iOS 15 之后可用下面 viewDidLoad 方法里面使用navigationController?.navigationBar里面方法设置,详情看文章内容原创 2021-07-01 14:50:09 · 310 阅读 · 0 评论 -
UITextView、UITextField限制字符输入
下面是 UItextView 的处理,当然 UItextField 同样处理就好了func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { //允许删除 if text.isEmpty && range.length > 0 { return true } e原创 2021-06-21 12:01:53 · 481 阅读 · 0 评论 -
WKWebView 2 图文富文本,点击图片处理
首先此文章借鉴了[学习计划 (3,4) - WKWebview 实现浏览大图并保存本地](https://www.jianshu.com/p/b2ff75e7980e)上一篇:[WKWebView 1 加载图文富文本](https://blog.youkuaiyun.com/u014651417/article/details/116998517?spm=1001.2014.3001.5501)使用WKWebView加载的富文本中的图片,怎么能做到点击图片识别呢首先,不能有这种 js 方法执行//禁止点击.原创 2021-05-19 11:19:30 · 576 阅读 · 1 评论 -
WKWebView1 加载带图文富文本
wkwebview 加载带有图文的富文本,有很多显示不全的, 而且网上很多方法都是不能达到这种效果的有的是单单文字还好,加上图片之后,会出现各种问题例如这种富文本:let path = """ <p><img src="http://img.youluwx.com/qa/20210222/image/9369cb64-9119-4f46-a3bc-51c761698230.png"></p> <p>原创 2021-05-18 19:00:09 · 1039 阅读 · 0 评论
分享