iOS swift
海阔任月飞
眼看千遍,不如手动一遍,立即行动....
展开
-
Swift 第三方下载库
本着学习的态度,经过生活的积累,自己在项目中不断地学习,开始了学习写一些简单的库,共大家使用,虽然有点简单,但是思想确实一个编程思想,今天带来一个不一样的第三方下载库,超级好用,相对来说比较简单。一会附上链接。下面说一说这个库的详细使用方法:首先下载下载库:下载好后如图所示:config文件夹这个文件主要是为下载配置的一下信息,包括监听网络状态,json的解析等,这些你用来解析其他的json数据。data文件夹这个主要是是用来保存下载好的数据,缓存到内存里还磁盘里。http.原创 2021-09-10 15:55:02 · 663 阅读 · 0 评论 -
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 · 625 阅读 · 0 评论 -
获取文件的标识符
在iOS14以前用这个函数:import CoreServicesfunc mimeType(forPathExtension pathExtension: String) -> String { if let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(),原创 2021-07-12 11:34:03 · 303 阅读 · 0 评论 -
iOS UITextView 点击文字、文字折行、富文本等使用
iOS 对于文本的处理已经有了很好的封装,对于富文本的需求也做了不少的工作。尤其是使用NSAttributedString,可以很好的完成大部分的工作。但是我早期做的项目中,有那么一个需求,就是当用户需要点击特定的文字,并完成相应的任务。比如:在一个英语测试的App里,有一个功能叫找错,就是一英文里面有一个或几个单词是错误的需要点击一下删除掉,这个时候就需要用到点击确定字母并删除的功能。那么我们就根据这个需求来完成下面的操作。首先创建一个工程,然后命名为:TapTextView然后在创建一个文件原创 2021-04-09 17:29:01 · 1588 阅读 · 0 评论 -
swift 富文本开发之 SwiftyAttributes
对于开发中使用富文本的情况是非常常见的一个场景,而且swift已经有一个很好的支持富文本的NSAttributedString。但是使用起来还是有点麻烦,不太方便。网上也有一个第三方的框架SwiftyAttributes,试用起来很好用。然后这个功能非常的棒,支持的平台也比较多,如果我们只需要手机平台的话,那么我们用上它就有点不太值了。但是我们可以根据他的思路单独封装一个专用的手机平台sdk。这个源码核心的实现相对比较简单,但是里面的思想确实很新颖,也只有swift能这么实现了,那么我们可以按照他的逻辑原创 2020-05-20 14:12:57 · 999 阅读 · 0 评论 -
Swift 4.2 CAReplicatorLayer的使用
CAReplicatorLayer可以按照指定的次数复制自己的子层,并按照指定的方式变换位置、大小、颜色、透明度等。以及动画实现。我们先看一下CAReplicatorLayer的基本属性,找到CAReplicatorLayer的定义,是继承CALayer,所有具有CALayer的所有特性,那么我们看看他独有的属性。 instanceCount 这个是拷贝子层的数量,默认是1,支持动画。...原创 2019-03-06 10:49:44 · 323 阅读 · 0 评论 -
UILocalizedIndexedCollation -- 本地化下按首字母分组排序
关于通讯录的项目就会有按首字母或者汉字拼音首字母分组排序索引。说说以前用的就是 比如把汉字转成拼音再排序的方法了,不仅效率低,对其他语言的本地化更是行不通。偶然间在阅读别人的代码时发现了UILocalizedIndexedCollation,于是搜索相关资料,整理了一下。参考自文章http://nshipster.cn/uilocalizedindexedcollation/ ...转载 2018-11-25 14:50:00 · 164 阅读 · 0 评论 -
ios UIDatePicker 显示 24小时制的方法
需要加入下列几行代码:datePicker.calendar = Calendar.current;datePicker.locale = Locale(identifier: "en_GB");datePicker.timeZone = TimeZone.current;datePicker.datePickerMode = .time;...原创 2018-12-21 16:41:00 · 5032 阅读 · 0 评论 -
App store 上传遇到 ERROR ITMS-90206: 解决办法
上传AppStore出错误:ERROR ITMS-90206:"Invalid Bundle. The bundle at 'XXX.appex' contains disallowed file 'Frameworks'."如下图:原因分析:上传附带ios的extension扩展插件,比如today-widget,等。会遇到这样的问题.解决办法:首先进入项目Build Sett...原创 2018-12-30 21:49:35 · 4615 阅读 · 2 评论 -
ios form表单上传图片
1.使用微博开发的一个“发送带图片微博”的接口来测试,这是接口地址,这里面明确说明需要使用multipart/form-data格式提交图片。关于使用微博开放平台api、授权之类的就不说了。2.multipart/from-data是一种进行表单提交时的消息格式。表单提交数据的时候,默认类型是application/x-www-form-urlencoded,也就是key=value的键值对格...转载 2018-09-29 12:14:10 · 2689 阅读 · 0 评论 -
打印 text
打印很简单 就这个一个方法即可:直接上代码class func printText(text: NSAttributedString) -> Void { let print = UIPrintInteractionController.shared; print.printInfo = UIPrintInfo.printInfo(); ...原创 2018-05-16 16:12:49 · 237 阅读 · 0 评论 -
swift 4.0 MD5 加密
之前写过一个 swift md5 加密的的文章很短,很短,但是很实用,有的朋友说有问题不能运行,这里我先声明我的xcode9.3的 这个版本截止到目前是最新的,我这个是没问题的.那么我总是感觉那个方法还有点oc的味道,所以今天就改成完全是swift 版本.直接上代码:var MD5String: String { let cStrl = cString(using: String.E...原创 2018-05-07 12:08:20 · 4518 阅读 · 0 评论 -
swift 4.0 UnsafeMutablePointer<ObjCBool> 的初始化
关于C布尔值在swift 里的初始化问题,这个有两种: 第一种:var pointer = ObjCBool.init(false); if file.fileExists(atPath: absPath, isDirectory: &pointer) { if !pointer.boolValue { ...原创 2018-05-07 11:25:07 · 8142 阅读 · 0 评论 -
图片的类别
导入 import MobileCoreServices直接引用下面这个代码 let imgs = kUTTypeImageas? String; print("image =\(imgs)");原创 2018-01-03 10:38:54 · 310 阅读 · 0 评论 -
iOS 渐变文字效果
func setGradientText() -> Void { titlDb = createLabel(rect: CGRect.init(x: 0, y: 0, width: 100, height: 100), text: "这是一个label"); titlDb.textColor = UIColor.green; tit原创 2017-08-30 15:50:33 · 571 阅读 · 0 评论 -
Swfit 获取设备信息
获取设备信息 swift 版本extension UIDevice { var modelName: String { var systemInfo = utsname() uname(&systemInfo) let machineMirror = Mirror(reflecting: systemInfo.machine)...转载 2019-02-18 11:53:22 · 166 阅读 · 0 评论 -
Swift 4.2 动态获取一个类的属性,方法,和变量。
前言对于OC来说可以动态获取类的属性、方法等信息,但是对于Swift来说能不能获取到呢,我们先来看个实验。实验首先定义个纯Swift类,没有继承NSObject。class PersonModel { var name = "张三"; var age = 18; func printInfo() -> Void { prin...原创 2019-03-05 09:23:16 · 2791 阅读 · 0 评论 -
iOS NSNumberFormatter 数字格式化
iOS中的数字格式化处理,系统有一个非常好用的类NSNumberFormatter,但是在swift去掉了NS前缀NumberFormatter,用法是一样的,今天我们就来讲一下这个的用法。 NumberFormatter.style数字格式 none四舍五入 举个栗子: let number = 123.456;let numberstring = NumberForma...原创 2019-04-18 14:04:38 · 3472 阅读 · 0 评论 -
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 · 428 阅读 · 0 评论 -
iOS CAEmitterLayer 粒子发射器(2)
上一篇讲了粒子发射器的属性,这一篇文章我们来测试属性的效果,我们先大概的说一下。demo地址CAEmitterLayer的emitterShape和emitterMode组合可以创建不同效果,当emitterShape为point形状的时候会忽略emitterMode。CAEmitterCellscale scaleRange scaleSpeed 这三个是缩放比例,只有设置了 ...原创 2019-04-09 12:02:58 · 192 阅读 · 0 评论 -
iOS 仿微信朋友圈实现
下面讨论一下微信朋友圈的实现方式。先分析结构,和布局。微信朋友圈,看起来很有秩序,而且滑动的时候也不卡,应用的非常好。对于微信朋友圈的样式,我们可以大致分成以下6种类型。纯文字类型 单张图得显示 多张图得显示(按照九宫格排练) 链接类型 视频类型 广告类型那么我们需要分析每种类型的布局有什么共同点,和不同点。每种类型都是有一个头像和一个姓名,这个是必须的,我们可以封装到父类...原创 2019-03-29 10:20:12 · 7673 阅读 · 2 评论 -
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 · 320 阅读 · 0 评论 -
iOS CAEmitterLayer 粒子发射器
CAEmitterLayer粒子发射器可以做出很酷的效果,也有很多属性需要我们了解一下。我们就常用的属性讲解一下。CAEmitterLayer的属性 emitterCells发射粒子的数组 birthRate产生粒子系数,默认是1,发射粒子的个数:总个数 = cell.birthRate * layer.birthRate。 lifetime粒子的生命周期,默认是1,...原创 2019-04-04 12:32:34 · 257 阅读 · 0 评论 -
swfit 4.2 制作framewrok库
制作一个framwrok库是一个比较好的保护隐私实现的好方法。既可以用来共享,又可以保护自己的代码安全,不被其他人修改。步骤先创建一个framework工程File->New->Project创建。选择Cocoa Touch Framework项目,添加自己的要打包的文件。创建后工程目录如下图:我现在添加一个了ZGPickerView.swfit文件,可...原创 2019-03-06 14:36:02 · 232 阅读 · 0 评论 -
iOS 上传图片和下载网络数据封装Swift
导语:下载数据和上传图片是每个开发人员必备的技能,也是最基本的.网上有很多优秀的第三方工具,我们常用的有AFN,YTKNetwork,Alamofire等,这些都是封装很好的,虽然需要研究一下,但是确实很好用.但是,我们用这些框架也有几个问题需要考虑一下,这些功能都很强大,但是我们真正用到的却少之又少,有点得不偿失. 如果版本不合适,需要更换版本,成本也可能会高 当出现bug的时候...原创 2019-02-26 12:19:37 · 651 阅读 · 0 评论 -
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 · 264 阅读 · 0 评论 -
iOS CALayer mask 属性
/* A layer whose alpha channel is used as a mask to select between the* layer's background and the result of compositing the layer's* contents with its filtered background. Defaults to nil. When use原创 2017-08-30 14:49:09 · 480 阅读 · 0 评论 -
UITableViewCell 折叠与展开
需求: 一级列表展示分类,二级类表显示分类的具体详细信息: 比如: 一级列表显示: 北京,天津,上海等, 二级列表 点击北京显示 朝阳区,海淀区,玄武区,等等 但是只有一个是展开的,如果北京市展开那么其他都要折叠. 主要方法:- (void)didSelecterSection:(AddressTabl原创 2017-07-26 16:25:56 · 1752 阅读 · 0 评论 -
iOS dSYM 文件分析
来到新公司后,前段时间就一直在忙,前不久 项目 终于成功发布上线了,最近就在给项目做优化,并排除一些线上软件的 bug,因为项目中使用了友盟统计,所以在友盟给出的错误信息统计中能比较方便的找出客户端异常的信息,可是很多像数组越界却只给出了 *** -[__NSArrayM objectAtIndex:]: index 50 beyond bounds [0 .. 39]' 这类错误信息,如下图所示转载 2017-08-01 09:56:55 · 2902 阅读 · 0 评论 -
双击放大图片
对于图片的操作来说,有很多手势,比如双指放大或缩小,左右滑动,手指移动,双击放大等等。那么对于今天我们要讲的是双击放大手势。那么接下来就直接开讲。 对于双击放大手势,我们可以直接是使用UIScrollView这个类,他不仅支持两个手指放大,还能限制放大的倍数。非常方便。 首先,我们先自定义一个类JMScaleView,继承UIView.看代码@interface JMScaleView原创 2016-08-22 11:02:18 · 1071 阅读 · 0 评论 -
认识CoreData—高级用法
之前听人说过,CoreData比较容易入手,但是很难学精。这也是很多人说CoreData不好用的原因之一,只是因为使用方式有问题,或者说并没有真正掌握CoreData。如果从性能上来说,CoreData比SQLite确实略差一些。但是对于移动端来说,并不需要大型网站的高并发,所以这点性能差别几乎是没有影响的,所以这点可以忽略不计。在后面的文章中,将会给出CoreData的优点和缺点对比,以原创 2016-08-08 17:11:55 · 313 阅读 · 0 评论 -
iOS 读取GB2312文本
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); NSString *filenData = [NSString stringWithContentsOfFile:path encoding:enc error:&error]原创 2016-05-18 10:50:45 · 911 阅读 · 0 评论 -
简单的封装网络下载almofire(一)
网络下载是作为一个iOS程序必须懂得的技术.虽然已经有大牛封装非常好用的下载sdk,功能也非常强大,并且基本上你都不用怎么在添加新的功能就可以直接使用.非常方便. 但是有个问题,如果我们直接使用他们的sdk,一旦他们放弃了跟新,或者说,我们要换一个比这个更好用的sdk,那么问题就来了,你需要把你所写的下载代码全部换掉,如果是个小工程,还不算什么事,如果大工程,那么你就麻烦了.需要一个一个的原创 2016-08-08 10:35:36 · 624 阅读 · 0 评论 -
ios 实现二维码扫描
二维码扫描实现转载 2016-08-08 10:17:04 · 352 阅读 · 0 评论 -
ios 震动代码
有时候需要用震动来向用户反馈提示,这时就要加入震动代码,下面一句话就能实现:AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))这一句就会出现奇迹.原创 2016-08-08 10:15:22 · 902 阅读 · 0 评论 -
ios 通过scheme打开一个应用
需求: 需要从一个应用中打开另外一个应用,并传递参数,这时候就要用到scheme 这个参数,scheme,怎么设置呢. 首先,选择工程文件,然后是info,在最下面有一个URLScheme点击加号配置你的URLSchemes 下面截一个图示意: 这个URLScheme是一个表示这个应用的唯一标示符,没有规则可以随原创 2016-08-17 17:38:16 · 1908 阅读 · 0 评论 -
iOS中使用blend改变图片颜色
这个属性很有意思自己可以看看,点击这里查看文章下面是一个方法改变图片的颜色的方法func drawImageColor(image: UIImage,color: UIColor) -> UIImage { UIGraphicsBeginImageContextWithOptions(image.size, false, UIScreen.mainScreen()原创 2016-07-14 10:02:38 · 302 阅读 · 0 评论 -
ios 图片圆角设置
对于圆角的设置,很简单,只需要layer的两个属性即可,就想下面一样view.layer.cornerRadius = 5;view.layer.masksToBounds = true;这样就可以设置圆角了.很简单.但是,如果在一个列表里要显示多个图片,并且还需要圆角的设置,那么上边的就不太好了,你会发现严重影响,用户体验.那么解决方法是什么呢,下面直接上代码.func dra原创 2016-07-14 09:40:16 · 334 阅读 · 0 评论 -
Swift MD5加密
Swift MD5加密在github有一个非常好的第三方库,使用也比较简单,还有很多加密方法,如果需要,点击这里下载 对于那些不需要太多的加密,只需要MD5加密的同学,我建议还是不要用第三方库. 因为第三方包很大,而且每次使用还需要引入包,相对来说比较复杂,不如直接写一个方法比较简单. 下面就是MD5加密的方法.func md5String(str:String) ->原创 2016-07-13 09:01:54 · 11036 阅读 · 4 评论 -
NSLayoutConstraint实例详解
NSLayoutConstraint 是一个很好的解决iphone和ipad适配问题,下面通过实例来简单的介绍一下:self.view.translatesAutoresizingMaskIntoConstraints = false; let leftView = UILabel(); leftView.backgroundColor = UICo原创 2016-08-11 10:57:33 · 1257 阅读 · 0 评论