自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海阔天空的专栏

眼过千遍,不如手动一遍,立即行动起来

  • 博客(88)
  • 收藏
  • 关注

原创 Could not find ‘ffi‘ (>= 1.3.0) among 86 total gem(s) (Gem::MissingSpecError)

pod 错误处理

2021-12-21 20:24:04 1999 1

原创 Swift 第三方下载库

本着学习的态度,经过生活的积累,自己在项目中不断地学习,开始了学习写一些简单的库,共大家使用,虽然有点简单,但是思想确实一个编程思想,今天带来一个不一样的第三方下载库,超级好用,相对来说比较简单。一会附上链接。下面说一说这个库的详细使用方法:首先下载下载库:下载好后如图所示:config文件夹这个文件主要是为下载配置的一下信息,包括监听网络状态,json的解析等,这些你用来解析其他的json数据。data文件夹这个主要是是用来保存下载好的数据,缓存到内存里还磁盘里。http.

2021-09-10 15:55:02 668

原创 iOS unicode转中文

swift版本:适合5.2以上直接上代码:func convertChina(unicodeStr: String) -> String { let tempValue1 = unicodeStr.replacingOccurrences(of: "\\u", with: "\\U"); let tempValue2 = tempValue1.replacingOccurrences(of: "\"", with: "\\\""); let tempValue3 =

2021-08-18 11:02:56 635

原创 获取文件的标识符

在iOS14以前用这个函数:import CoreServicesfunc mimeType(forPathExtension pathExtension: String) -> String { if let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(),

2021-07-12 11:34:03 304

原创 iOS UITextView 点击文字、文字折行、富文本等使用

iOS 对于文本的处理已经有了很好的封装,对于富文本的需求也做了不少的工作。尤其是使用NSAttributedString,可以很好的完成大部分的工作。但是我早期做的项目中,有那么一个需求,就是当用户需要点击特定的文字,并完成相应的任务。比如:在一个英语测试的App里,有一个功能叫找错,就是一英文里面有一个或几个单词是错误的需要点击一下删除掉,这个时候就需要用到点击确定字母并删除的功能。那么我们就根据这个需求来完成下面的操作。首先创建一个工程,然后命名为:TapTextView然后在创建一个文件

2021-04-09 17:29:01 1607

原创 iOS 修改系统定位(非越狱)

修改系统定位其实是不太可能的(除非越狱)。那么我们今天就通过一个简单方式来修改系统的定位,当然是有一定的限制的。首先:我们先创建一个项目,名字随意。然后一个文件LocationPosition.gpx如下:然后打开这个LocationPosition.gpx文件如下:<?xml version="1.0"?><gpx version="1.1" creator="Xcode"> <!-- Provide one or more

2021-02-20 13:56:01 12119 1

原创 iOS14-桌面小插件 IntentConfiguration

今天做一个桌面小插件配置IntentConfiguration的小Demo,前面我们留下一个问题没有用的那个intentdefinition,这次我们就创建一个新的工程做一个动态配置数据。按照上上一篇的文章,先创建一个工程。做一个菜单小插件。创建一个工程命名为IntentWidget,创建一个target命名为MenuConfig,这时候我们先创建一个菜单数据模型,创建一个文件,命名为MenuJson,并添加如下代码:struct MenuJson: Codable { let id: S

2020-11-03 10:30:39 2930 7

原创 iOS14-桌面小插件 StaticConfiguration

iOS14新增桌面小插件,对于适配来说,还是需要记录一下的,今天配置一个简单的桌面小插件。设备准备:Version 12.1 (12A7403) macOS Catalina 10.15.4首先先创建一个工程,命名为StaticWidget,如下图所示:我们首选SwiftUI开发,对于开发桌面小程序来说,只能用SwiftUI,这也是我们使用SwiftUI开发一个重要原因。创建Widget我们先创建一个Target,选择widget。如下图:这里需要注意一下,记得选中Incl.

2020-11-02 14:43:34 1445

原创 SwiftUI之日期控件、列表、自定义PickerView控件、本地通知

今天要说一下需求,我们需要自定义个像日期一样的PickerView,但是在SwiftUI上好像只有一个单列的,没有多列的控件,不过也可以借助UIPickerView来实现,另外我们还可以通过组合来实现这种控件。我们通过一个记录体重的Demo来实现。首先我们来创建一个工程WeighApp,然后我们在ContentView.swift这个文件里添加一个体重的列表。如下:var body: some View { NavigationView { List {

2020-09-11 10:49:48 1717

原创 SwiftUI-公司打卡开发

SwiftUI是苹果官方出的一个针对UIKit的提升版,意在数据推动UI变动,让我们重点关心在数据上,摆脱了UI布局的困扰,那么今天我们就来学习一个Demo,公司打卡记录的Demo,指在通过粒子能更好的掌握其中的一些使用技巧,和一些开发思路。另外官方也有很好的Demo也可以去学习一下。我们做好的效果大概如下:这个是单独测试的一条数据,每天只能打一次上下班的卡。看完今天的的文章,你也可以做一个这样的例子了。下面直接上代码:首先创建一个工程,我们先命名为OfficeManger,然后我们..

2020-09-01 10:26:19 327

原创 Swift之无限循环控件开发

无限循环控件是一个常常用到的一个控件,尤其是一些广告或者应用内容公告通知,或者新闻滚动的设计,都是必备的。这种控件网上也有很多,也有很多可以自定义的版本,功能非常强大。但对于我们开发者来说,在具体的应用上风格和样式都是比较统一的,一般只需要自己特定的一种风格或样式即可,引入第三方显然有点大材小用。那么我们怎么能简单而且又快速的造一个无限循环的控件呢,只要我们知道无限循环的原理,那么我们就很自由的按照需求快速的完成。今天我们就讲讲这个‘造轮’过程。首先我们简单分析一下无限循环的原理。一个控件的自带滚动有.

2020-07-25 14:40:06 561

转载 SwiftUI开发-@EnvironmentObject、ObservableObject、@Published理解

对于这三个特性,我们可以简单记录一下,EnvironmentObject修饰属性是当前的环境变量,并在它自己以及它的子视图都可以直接使用,也可以叫做当前当前视图全局变量。下面我们看一个编辑学生姓名的例子:先定义一个学生数据模型,如下:class Student: ObservableObject { @Published var name = ""}然后在写一个编辑框,编辑学生的姓名:struct EditStudentView: View { @Environment

2020-07-03 10:05:20 4037

原创 swift 富文本开发之 SwiftyAttributes

对于开发中使用富文本的情况是非常常见的一个场景,而且swift已经有一个很好的支持富文本的NSAttributedString。但是使用起来还是有点麻烦,不太方便。网上也有一个第三方的框架SwiftyAttributes,试用起来很好用。然后这个功能非常的棒,支持的平台也比较多,如果我们只需要手机平台的话,那么我们用上它就有点不太值了。但是我们可以根据他的思路单独封装一个专用的手机平台sdk。这个源码核心的实现相对比较简单,但是里面的思想确实很新颖,也只有swift能这么实现了,那么我们可以按照他的逻辑

2020-05-20 14:12:57 1010

原创 swift 5.1 Json转换之Codable

对于开发的人员来说,接受后台的数据,并转换成自己的数据模型是常见的事情。但是作为苹果开发者,并没有一个很好的工具去直接转换,必须借助与第三方的开发的库。那么比较好用的有YYModel、MJExtension。当然还有其他的库。但是有个问题,对于第三方库,如果使用过多对于我们开发者来说并不是一件好事。简单分析一下:优点:功能强大,使用方便,提高开发效率,相对较安全出现bug几率较...

2020-05-02 14:53:46 2188 1

原创 css float 浮动简介

float浮动这个属性,对于刚学习的人来说其实还有点不太好理解,有时候总不能按照自己的意图来工作。对于刚刚接触css的人来说,更是有点蒙圈。在这里,我就根据我在网上找到的一些文章,写写自己的理解。(大神请飘过。。。)float浮动值的属性:值 描述 left 元素向左浮动。 right 元素向右浮动。 none 默认值。元素不浮动,并会显...

2020-03-10 19:18:36 227

原创 SwiftUI 常用控件之Text、Button、Image基本使用

对于Swift框架的使用已经非常简单了,不但简单而且快速,然而随着长时间的使用,也还存在着很多弊端,毕竟还是延续OC的声明的模式。SwiftUI的推出,使开发变得更加简单了,不在注重界面的创建和布局了,把重点可以聚集到数据逻辑上,从而使开发效率更高。那么我们今天就开始学习SwiftUI的常用的几个控件。可以开启预览功能。对于这三个控件我们只以Text标签做粒子,其他的两个和这个一...

2019-11-22 15:39:24 1481

转载 系列文章深度解读|SwiftUI 背后那些事儿

原创 系列文章深度解读|SwiftUI 背后那些事儿 ...

2019-11-19 10:37:20 604

原创 Swift、C和C 混编(二)

上一篇写了Swift、C、C++混合调用的情况,对于这些简单的调用我想大家已经有了基本的技能了。那么接下来我们在来看看怎么在swift里使用c数组。对于这个数组。对于指针我们可以直接赋值,并且也可以直接读取,那么对于数组呢,也是这样么。我们来看看。怎么样读取。测试环境:xcode: 11.1 swift 版本: 5.0我们先创建一个工程命名为SwiftDemo。然后我们创建一...

2019-10-24 11:14:37 261

原创 Swift、C和C++混编

苹果推出Swift后,很快就受到程序猿的青睐,快速、安全、简洁的开发已经是一个大趋势了。如果在加上C和C++真的是天衣无缝了,完美结合。对于Swift调用C和C++,通常需要OC做桥接(oc调用c和c++),性能得不到优化。我们今天直接用Swift调用C使性能得到全面的提升。苹果号称和C一样快的Swift的demo我们来粒子。测试环境:Xcode版本:11.0-beta Swift版...

2019-06-22 21:33:59 7283

转载 iOS NSRegularExpression 正则表达式的编写和使用

版权声明:本文为博主原创文章,转载请附上本文链接地址。from : https://blog.csdn.net/lovechris00 https://blog.csdn.net/lovechris00/article/details/78236500文章目录简述NSPredicate 校验方法NSRegularExpression 的使用1、初始化NSRegularExpressi...

2019-05-29 11:37:01 878

原创 ios MapView地图开发之聚合

对于系统的地图我们使用的可能不是很多,然而,系统的地图功能也很强大,尤其是iOS11以后,加上了点得聚合功能,这是地图开发更加有力。更疯狂,而且不需要自己计算合并逻辑,系统会自动计算。大大开放开了开发者的开发空间,提高了开发效率,有点不足之处就是11以后才能使用。对于尝鲜的开发者来说也很不错,现在都等iOS13了估计11一下的很少,所以完全可以适配了。设备: xcode 10....

2019-05-15 17:16:21 1187 2

原创 iOS webview与js交互

WebView是显示网页的主要控件,在实际工作共经常会用到,尤其是当需要与用户有交互的时候,就会用到js,对于不太熟悉js的同事来说可能有点蒙,我们今天就来总结一下webview与js交互功能。iOS12以后的版本不在支持UIWebView,用WebKit库来代替了,我们在这里只讨论WKWebView。我们先来看下WebKit常用的几个类:WKWebViewConfigur...

2019-05-08 11:27:57 8931 1

原创 iOS NSNumberFormatter 数字格式化

iOS中的数字格式化处理,系统有一个非常好用的类NSNumberFormatter,但是在swift去掉了NS前缀NumberFormatter,用法是一样的,今天我们就来讲一下这个的用法。 NumberFormatter.style数字格式 none四舍五入 举个栗子: let number = 123.456;let numberstring = NumberForma...

2019-04-18 14:04:38 3517

原创 swift 4.2 仿新闻首页导航

对于仿照新闻首页的页面,已经有比较好用的OC版本,现在我们来写一个swift版本的。设备:xcode 10.2 语言:swift 4.2效果图:我们先创建一个多控制器的导航栏,直接上代码://// JHSBarItemView.swift// ScrollBarController//// Created by yaojinhai on 2019/4/1...

2019-04-16 14:58:12 434

转载 自动断字 ( Auto Hyphenation ) 是什么,为什么你的 App 里应该使用它

和宽度恒定的汉字不同,西文单词的长度是一个变量。这就给文章的排版带来了对齐上的问题。无论是两端对齐、靠左还是靠右对齐都看起来不够优雅。在正式的文本中,往往使用断字(Hyphenation)来缓和这个问题。望文生义的来看 hyphenation 这个词,就是用 hyphen(短横 - )将单词断开。正确的断字只能以音节为单位,比如 impeachment 可以断为 impeach-ment 或...

2019-04-15 14:13:26 1806

原创 iOS 文字掉落效果 CATextLayer

对于每个文字的处理是很复杂的一个工作,今天我们就先说一个文字掉落的效果,先看张效果图。这个是通过NSTextStorage,NSLayoutManager,NSTextContainer以及CATextLayer实现的。我们先看代码:设备:xcode 10.1语言:swift 4.2NSTextStorageNote for subclassing NSTextS...

2019-04-11 11:28:39 919

原创 iOS CATransformLayer 3D渲染层

CATransformLayer 3D渲染层 CATransformLayer是一个用来渲染3d模型的层,显示的是3维空间,不同于2维平面,所以会忽略filters, backgroundFilters, compositingFilter, mask, masksToBounds,shadow等2维平面的属性,并且也不会调用hitTest:方法。设备:xcode 10.1语言:...

2019-04-10 10:07:33 325

原创 iOS CAEmitterLayer 粒子发射器(2)

上一篇讲了粒子发射器的属性,这一篇文章我们来测试属性的效果,我们先大概的说一下。demo地址CAEmitterLayer的emitterShape和emitterMode组合可以创建不同效果,当emitterShape为point形状的时候会忽略emitterMode。CAEmitterCellscale scaleRange scaleSpeed 这三个是缩放比例,只有设置了 ...

2019-04-09 12:02:58 195

原创 ios webview自定义弹出框 UIMenuController

webView弹出UIMenuController是系统自带的一个功能,有时候我们需要自己实现自定义的功能,那么我们改怎么做呢。然而我们用的最多的就是WKWebView,对于UIWebView苹果已经舍弃了,现在我们只讨论WKWebView的用法。实现的方法是基于swift 4.2。我们要实现弹出系统的UIMenuController,需要以下几步:为当前的controller设置可以第一...

2019-04-08 12:28:30 1570 2

原创 iOS CAEmitterLayer 粒子发射器

CAEmitterLayer粒子发射器可以做出很酷的效果,也有很多属性需要我们了解一下。我们就常用的属性讲解一下。CAEmitterLayer的属性 emitterCells发射粒子的数组 birthRate产生粒子系数,默认是1,发射粒子的个数:总个数 = cell.birthRate * layer.birthRate。 lifetime粒子的生命周期,默认是1,...

2019-04-04 12:32:34 261

原创 iOS 仿微信朋友圈实现

下面讨论一下微信朋友圈的实现方式。先分析结构,和布局。微信朋友圈,看起来很有秩序,而且滑动的时候也不卡,应用的非常好。对于微信朋友圈的样式,我们可以大致分成以下6种类型。纯文字类型 单张图得显示 多张图得显示(按照九宫格排练) 链接类型 视频类型 广告类型那么我们需要分析每种类型的布局有什么共同点,和不同点。每种类型都是有一个头像和一个姓名,这个是必须的,我们可以封装到父类...

2019-03-29 10:20:12 7687 2

转载 iOS 事件(UITouch、UIControl、UIGestureRecognizer)传递机制

一.触摸、事件、响应者1. UITouch源起触摸 一个手指一次触摸屏幕,就对应生成一个UITouch对象。多个手指同时触摸屏幕,生成多个UITouch对象。 多个手指先后触摸,系统会根据触摸的位置判断是否更新同一个UITouch对象。若两个手指一前一后触摸同一个位置(即双击),那么第一次触摸时生成一个UITouch对象,第二次触摸会更新这个UI...

2019-03-20 09:57:13 1225

原创 swift for 循环

在swift 4.2 中已经舍弃了传统的C语言的for;;循环,替换成更能符合本身语言特性的新形式。第一种 for - in这一种是最常用的,可以遍历所有的集合类。如下:func testFor(){ let list = [1,2,3,4]; for idx in list { print("idx =\(idx)"); } let...

2019-03-19 16:24:10 18999 1

原创 Photo 相册操作

提要 对于相册的操作网上有很多文章,也有很多讲解,我们今天来实现相册的多选功能。我们利用Photo.framework,这个是iOS8以后的版本。我们先熟悉一个这个框架的基本的几个类。PHAsset:一个资源的相片 PHAssetCollection:继承PHCollection的子类,单个资源的集合,如相册、时刻等 PHCollectionList:继承PHCollection的...

2019-03-13 13:32:27 659

转载 iOS中触摸事件传递和响应原理

系统响应阶段 1.手指触碰屏幕,屏幕感受到触摸后,将事件交由IOKit来处理。 2.IOKIT将触摸事件封装成IOHIDEvent对象,并通过mach port传递给SpringBoard进程。 mach port是进程端口,各进程间通过它来通信。Springboard是一个系统进程,可以理解为桌面系统,可以统一管理和分发系统接收到的触摸事件。...

2019-03-11 10:02:05 768

原创 swift 4.2 TableView列表操作

对于开发应用来说,列表是最常用到一个控件,而且对于列表的操作也最多,我们比较常用的有插入、删除、多选、排序、索引等等。那么今天我们就一一的实现我们这些功能。我们下面要用到Version 10.1,swift 版本是4.2,在这个环境下实现。如果有不同的版本,有可能不兼容,毕竟swift版本现在还没有稳定。以手机通讯录为例,我们先来梳理一下思路:插入操作:当我们要插入一个人的信息时候,我们需...

2019-03-07 15:56:53 1859

原创 swfit 4.2 制作framewrok库

制作一个framwrok库是一个比较好的保护隐私实现的好方法。既可以用来共享,又可以保护自己的代码安全,不被其他人修改。步骤先创建一个framework工程File-&gt;New-&gt;Project创建。选择Cocoa Touch Framework项目,添加自己的要打包的文件。创建后工程目录如下图:我现在添加一个了ZGPickerView.swfit文件,可...

2019-03-06 14:36:02 234

原创 Swift 4.2 CAReplicatorLayer的使用

CAReplicatorLayer可以按照指定的次数复制自己的子层,并按照指定的方式变换位置、大小、颜色、透明度等。以及动画实现。我们先看一下CAReplicatorLayer的基本属性,找到CAReplicatorLayer的定义,是继承CALayer,所有具有CALayer的所有特性,那么我们看看他独有的属性。 instanceCount 这个是拷贝子层的数量,默认是1,支持动画。...

2019-03-06 10:49:44 325

原创 Swift 4.2 CGPattern 使用

对于CGPattern的使用有很多很好的文章。在这里我给大家有一篇官方的文档,介绍的很详细,现在用Swift 4.2版本来实现。 let pattern = CGPattern(info: nil, bounds: bounds, matrix: CGAffineTransform.identity, xStep: 40, yStep: 40, tiling: CGPatter...

2019-03-05 11:23:31 268

原创 Swift 4.2 动态获取一个类的属性,方法,和变量。

前言对于OC来说可以动态获取类的属性、方法等信息,但是对于Swift来说能不能获取到呢,我们先来看个实验。实验首先定义个纯Swift类,没有继承NSObject。class PersonModel { var name = "张三"; var age = 18; func printInfo() -&gt; Void { prin...

2019-03-05 09:23:16 2803

空空如也

空空如也

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

TA关注的人

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