![](https://img-blog.csdnimg.cn/20190705112605463.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Swift 5.0
文章平均质量分 74
iOS 开发
仰望星空01
不负韶华,砥砺前行!
展开
-
iOS开发中自旋和互斥锁的理解以及所有锁的性能比较
iOS开发中自旋和互斥锁的理解以及所有锁的性能比较OSSpinLock,dispatch_semaphore和pthread_mutex性能最高的,苹果在新系统中已经优化了pthread_mutex的性能,所以它看上去和OSSpinLock差距没有那么大。可以看到YYKit组件中YYCache和YYImageCoder大量使用dispatch_semaphore pthread_mutex这两个锁OSSpinLock自旋锁(虽然已经证明不安全,优先级翻转),性能最高的锁。原理很简单,就是一直do wh原创 2021-02-26 21:11:06 · 410 阅读 · 0 评论 -
常见的排序算法
排序算法冒泡算法//冒泡排序 时间复杂度O(n2)//优化方案:设置flag 是否交换func bubbleSort(list: inout Array<Int>) { var isSwap = false//优化 for i in 0..<list.count { isSwap = false for k in 0..<(list.count - i - 1) { if list[k] > lis原创 2021-02-26 21:01:05 · 96 阅读 · 0 评论 -
iOS UIView添加阴影 四周和单个方向以及百分比
UIBezierPath通常情况下设置阴影只需要设置layer就行,但是如果只是单边阴影以及百分比,只设置layer效果不是多好,可以用贝塞尔曲线实现。效果图:class ViewController: UIViewController { @IBAction func typeChange(_ sender: UISegmentedControl) { let ...原创 2019-11-21 15:45:38 · 5674 阅读 · 0 评论 -
Swift 之标准数字格式显示
NumberFormatter序数形式: 1,234,56th货币形式: USD1,234,567 1,234,567.00 US dollars $1,234,567.00会计计数: $1,234,567科学计数:1.234567E6朗读形式:one million two hundred thirty-four thousand five hundred sixty-seven百分数形式:100%原创 2019-10-24 13:49:24 · 3335 阅读 · 0 评论 -
Swift之高阶函数map、flatMap、filter、reduce
Swift之高阶函数map、flatMap、filter、reducemapflatMap与map不同之处filerreduce有关Swift.map高阶函数的应用 Swift相比于Objective-C又一个重要的优点,它对函数式编程提供了很好的支持,Swift提供了map、filter、reduce这三个高阶函数作为对容器的支持。map解释:可以对数组中的每一个元素做一次处理var ...原创 2019-07-15 17:43:20 · 648 阅读 · 0 评论 -
iOS 调用系统分享
调用系统分享框架Social.framework利用系统分享内容如下自定义UIActivity框架Social.framework导入框架Social.framework,集成系统分享时候我们会用到UIActivityViewController这个类的。利用系统分享内容如下fileprivate func systemShareAlert() { let url = U...原创 2019-07-04 12:37:20 · 2332 阅读 · 0 评论 -
iOS 文件预览(PDF、Excel、World等)之QuickLook框架
iOS 文件预览QuickLookQuickLook一、简介QuickLook库可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:iWork documentsMicrosoft Office documents (Office ‘97 and newer)Rich Text Format (RTF) documentsPDF ...原创 2019-07-01 14:18:01 · 5730 阅读 · 0 评论 -
Swift SnapKit布局注意事项
SnapKit布局注意事项Snapkit简单布局Demo常见问题一:updateConstraints常见问题二:snapkit更改布局动画效果常见问题三:两个自适应宽度控件,导致右边的自适应问题SnapkitSnapKit,一个经典的Swift版的第三方库,专门用于项目的自动布局。它的作者仍然是写Objective-C的第三方库Masonry的大牛 - @Robert Payne,开门见山。...原创 2019-07-01 13:52:52 · 3443 阅读 · 0 评论 -
设置tableHeaderView中使用xib格式页面布局错乱问题
tableHeaderView第一:xib文件作为headerView的时候:frame一定要在layoutsubviews方法中,把填写的frame,重新赋值不然会造成页面显示一屏幕的bug;第二:iOS 11.0以上机型,必须要在初始化,再用View 包裹:在设置bgView.addsubView( xibView)tableview.tableHeaderView = bgView...原创 2019-06-21 09:50:34 · 652 阅读 · 1 评论 -
UISearchBar中搜索框中右边叉号按钮事件
UISearchBarUISearchBar继承于UIView,我们可以像创建View那样创建searchBar,他是iOS系统提供给我们的搜索框;//改变左边搜索图标坐标位置。后面的占位符苹果已经做好约束总是跟随在搜索原创 2019-06-21 09:25:05 · 2426 阅读 · 0 评论 -
Swift5.0 Alamofire网络请求的二次封装
Alamofire结合SwiftyJSON、ObjectMapper二次封装网络请求Alamofire直接上代码吧单例方法:请求类:YRequestManager扩展请求方法:post、get、upload扩展私有方法,封装请求请求数据返回响应方法AFSErrorInfo结构体 和 YAPITargetType协议protocolbaseModel代码实例1说明AlamofireAFNet...原创 2019-04-29 12:35:47 · 12058 阅读 · 4 评论 -
iOS设置圆角的四种方法
iOS设置圆角的四种方法1. 设置CALayer的cornerRadius2. 设置CALayer的mask3. 通过Core Graphics重新绘制带圆角的视图4. 通过混合图层5. 总结1. 设置CALayer的cornerRadiuscornerRadius属性影响layer显示的background颜色和前景框border,对layer的contents不起作用。故一个imgView...原创 2019-04-19 11:25:55 · 4547 阅读 · 0 评论 -
iOS 一行代码搞定button 图文左右
iOS UIButton图片文字排版顺序iOS-UIButton的文本与图片的布局重写button按钮*setTitleEdgeInsets*和*setImageEdgeInsets*方法利用UIView属性中的:semanticContentAttributeSDAutoLayout给button重新布局iOS-UIButton的文本与图片的布局UIButton内部文本和图片的布局是我们日常...原创 2019-04-19 11:11:50 · 1828 阅读 · 0 评论 -
Swift 优雅的网络请求Moya
Moya使用demoMoya面向协议Moya的模块组成代码demoMoyaMoya是一个网络抽象层,它在底层将Alamofire进行封装,对外提供更简洁的接口供开发者调用。在Objective-C中,大部分开发者会使用AFNetwork进行网络请求,当业务复杂一些时,会对AFNetwork进行二次封装,编写一个适用于自己项目的网络抽象层。在Objective-C中,有著名的YTKNetwork...原创 2019-04-18 18:11:10 · 10688 阅读 · 1 评论 -
iOS 面向协议的Swift
面向协议的Swift面向协议应用场景:为什么说Swift是面向协议编程的语言?面向协议简单来说,协议就是一张代码实现蓝图,我们可以在这张蓝图上勾勒出可能需要实现的方法、属性和其他满足特定任务的功能模块。而类、结构或枚举都可以通过这张蓝图(协议)来提供对这些需求的实际实现。而任何满足协议要求的类型都被认为符合该协议,都需要实现该协议规定必须实现的方法和属性。Swift 标准库核心是面向协议,连...原创 2019-04-18 17:47:10 · 377 阅读 · 0 评论 -
Swift5.0 Alamofire download的一般使用
Alamofire download指定自己想要的文件名:就要重写:DownloadRequest.DownloadFileDestination block具体代码如下: let destination: DownloadRequest.DownloadFileDestination = {[weak self] (url, response) in let ...原创 2019-07-05 10:02:47 · 6367 阅读 · 3 评论 -
iOS 13适配汇总
随着iPhone 11的发布,iOS 13适配也提上了日程,接下来就开发中升级iOS13的手机可能出现的问题Xcode: 11.0iOS : 13.0UIViewController 模态弹出界面viewController.present(presentVC, animated: true, completion: nil)在调用模态弹出视图,会发现弹出的界面没有全屏。如图通过多次...原创 2019-09-15 14:53:26 · 9935 阅读 · 0 评论 -
iOS 可自定义AlertView
简单易用、可定制AlertView;Powerful, Easy to use alert view or popup view on controller and window,custom view and animation,for swift,support iphone, ipad原创 2019-09-26 15:37:44 · 1205 阅读 · 0 评论