iOS开发
文章平均质量分 54
奔跑2031
Keep Moving ...
展开
-
iOS手势全屏滑动返回
iOS系统是自带侧滑返回的,但一定要是边缘返回,不是全屏,可能是手势冲突的的原因,苹果肯定是有自己的考虑。但是开发者们,思路开阔,开发了全屏滑动返回的效果,和大家分享一种最简单有效的方案。原创 2022-09-02 13:22:09 · 1881 阅读 · 0 评论 -
iOS 进阶UI设计之部分圆角、单边阴影、虚线边框、绘制虚线
当App做到一定程度时,UI设计就是要锱铢必较了,圆润丝滑的视觉设计会让人感觉更舒服,笔者总结了常见的几种UI设计的绘制方案,本质上就是在图层上进行一定的绘制。部分圆角:注意:iOS 11.0以下的系统,如果是自动布局,绘制之前必须让父类调用 layoutIfNeeded,确定好view的Frame。/// 绘制部分圆角/// @param rectCorner 圆角样式/// @param radii 圆角- (void)drawCornerWith:(UIRectCorner)rectCor原创 2022-02-23 17:18:57 · 3149 阅读 · 0 评论 -
iOS WKWebView 设置默认系统字体
一般来讲,苹果系统提供的控件的字体基本都是跟随系统,但是WKWebView却不是,可能是网页的兼容性有自己的考虑。现在我的App里只有WKWebView的字体不跟着系统走,视觉上很别扭,严格的UI设计师也不会通过。笔者翻遍百度和stackoverflow也没找到WKWebView的默认字体是什么?如何修改成跟随系统倒是在stackoverflow找到?最后在国外大神的一遍文章里找到了答案,和大家一起分享。By default, if you don’t specify a font family in原创 2022-02-18 17:22:11 · 2734 阅读 · 0 评论 -
iOS 设置圆角和阴影并存(部分圆角)
为什么圆角和阴影不能共存?Because shadow is an effect done outside the View, and that masksToBounds set to YES will tell the UIView not to draw everything that is outside itself.大概意思是:阴影作用于视图外部,而圆角设置裁剪会把画在视图外面的所有东西裁掉。解决方案:那么我们可以在View上创建一个CALayer,制作阴影,让它位于我们需要添加阴影的圆角原创 2022-02-18 16:50:33 · 6082 阅读 · 0 评论 -
iOS 监听控制器左滑返回
系统提供的方案:UIViewController的类别UIContainerViewControllerCallbacks中定义了两个方法:- (void)willMoveToParentViewController:(nullable UIViewController *)parent API_AVAILABLE(ios(5.0));- (void)didMoveToParentViewController:(nullable UIViewController *)parent API_AVAILAB原创 2021-09-15 11:38:16 · 1925 阅读 · 0 评论 -
iOS10 推送通知进阶之 Service Extension
iOS10 添加两个通知相关的Extension:Service Extension 和 Content Extension。我们先来学习一下看一下Service Extension。简介UNNotificationServiceExtension是iOS10推出后的一个新特性,看图说话:从图中可以看出,原来直接从APNS推送到用户手机的消息通知,中间添加了ServiceExtension处理(当然也可以不处理)。通过ServiceExtension,我们可以把即将呈现给用户的通知内容,做各种修改和原创 2021-07-01 17:04:14 · 1006 阅读 · 0 评论 -
iOS 中 App 与 Extension 之间发送通知
有时候我们需要在Extension中数据变化时通知到主App,做一些操作。 NSNotificationCenter是做不到的,它只在App内部工作而不会在两个App之间发送通知。这时我们就可以使用系统级的通知中心:CFNotificationCenter,使用时和NSNotificationCenter类似,注意监听和移除。// 发送通知- (void)postCFNotificaiton { CFNotificationCenterRef noti = CFNotificationCenterGe原创 2021-07-01 11:30:13 · 1057 阅读 · 0 评论 -
const static extern 宏 的区别使用
当我们查看一些第三方库时,经常会看到大牛对 const、static、extern、宏 的区别使用,以及 const 和 static,const 和 extern 的结合使用,究竟为什么要这么用,本文就来探究一下。宏: 预编译时加载;没有编译检查;能定义函数、方法、变量等;大量使用宏时,预编译时间过长;const: 编译时加载;有编译检查;不能修饰函数和方法;修饰的变量是只读的;stat...原创 2019-02-25 17:45:07 · 242 阅读 · 0 评论 -
iOS 单元测试
很多开发者都听说过单元测试,但是在实际开发中我们却很少使用到单元测试,一般流程规范的大项目一般都会做单元测试,下面主要介绍 Xcode 自带的 XCTest 测试工具。单元测试单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。如C语言中的一个函数,Java里的一个类等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测...原创 2019-02-21 16:26:10 · 494 阅读 · 0 评论 -
Core Text 原理浅谈
iOS 开发中经常会遇到一些文字排版或者图文混排的需求,在 iOS7 以前一般都使用 CoreText 来处理这样的需求,iOS7 之后可以使用系统的 TextKit ,TextKit 是对 CoreText 的封装。CoreText 是用于处理文字和字体的底层技术,它直接和 Core Graphics 交互;它真正负责绘制的是文本部分,如果要绘制图片,可以使用 CoreText给图片预留出位置...原创 2019-01-24 17:09:53 · 1478 阅读 · 0 评论 -
iOS多线程方案之GCD详解
iOS开发中一共有四种多线程方案:Pthreads、NSThread、GCD、NSOperation。Pthreads:是线程的 POSIX 标准。该标准定义了创建和操纵线程的一整套 API,是基于 C 语言的框架。NSThread:是苹果封装后的,完全面向对象的类库。但是线程的生命周期还需要我们手动管理,不常用。GCD:是苹果为多核并行运算提供的线程方案,它会自动管理线程的生命周期(创建...原创 2018-11-12 17:45:59 · 587 阅读 · 0 评论 -
iOS多线程方案之NSOperation详解
iOS开发中一共有四种多线程方案:Pthreads、NSThread、GCD、NSOperation。Pthreads:是线程的 POSIX 标准。该标准定义了创建和操纵线程的一整套 API,是基于 C 语言的框架。NSThread:是苹果封装后的,完全面向对象的类库。但是线程的生命周期还需要我们手动管理,不常用。GCD:是苹果为多核并行运算提供的线程方案,它会自动管理线程的生命周期(创建...原创 2018-11-14 14:55:22 · 425 阅读 · 0 评论 -
使用CocoaPods创建开源库和私有库详解
笔者看了许多关于使用CocoaPods创建开源库的文章,大都写的不尽详细,尤其是对于从来没有创建过开源库的同学,不知道哪个步骤文章没写,在验证 .podspec 文件时就一堆错误,一脸懵逼。本文是一篇从零开始创建一个自己的开源库分享,如有问题,评论交流。首先,你需要注册一个CocoaPods账号,email使用你的GitHub邮箱,起一个用户名,打开终端:pod trunk register ...原创 2018-10-31 11:36:41 · 1312 阅读 · 1 评论 -
iOS11适配 以及会遇到的坑
关于适配iOS11和iPhone X 应该注意的坑。转载 2017-11-29 23:05:20 · 2201 阅读 · 0 评论 -
iOS开发之KVC和KVO原理解析和实例分析
在iOS开发中,苹果提供了许多机制给我们进行回调,代理,通知,block等。其中KVO(key-value-observing)是一种很实用的监听回调机制,KVO又基于KVC(key-value-coding)。原创 2017-12-07 17:24:19 · 947 阅读 · 0 评论 -
iOS之UITextView实现placeHolder占位文字的最佳方法
在iOS开发中,UITextField和UITextView是最常用的文本输入类和文本展示类的控件。不同的是,UITextField中有一个placeholder属性,可以设置UITextField的占位文字,可是,Apple没有给UITextView公开提供一个类似于placeholder这样的属性来供开发者使用。笔者比较了各种实现方法,推荐下面的自定义方法。原创 2017-11-28 11:55:54 · 1041 阅读 · 0 评论 -
UIView和CALayer是什么关系?
本文主要分享一下UIView和CALayer的关系,在理解视图原理和面试方面都能用得到,若有不足之处,欢迎交流。原创 2017-09-05 14:27:35 · 3691 阅读 · 0 评论 -
assign weak retain strong copy关键字的区别
在iOS开发中定义@property属性时,经常用到assign、weak、retain、strong、copy等关键字。我们经常会考虑在何时应该使用哪个关键字,尤其是在面试的时候,经常会被问到这些关键字之间的区别,下面详细和大家探讨一下: assign:用于对基本数据类型进行赋值操作,不更改引用计数。也可以用来修饰对象,但是,被assign修饰的对象在释放后,指针的地址还是存在的,也就是...原创 2016-05-21 00:11:16 · 7026 阅读 · 0 评论 -
Cocoapods安装最新教程--适配OS X EL Capitan 和 ruby-china新域名
使用CocoaPods的必要性?CocoaPods是iOS开发最常用最有名的类库管理工具了,通过cocoaPods,可以快速方便的导入多第三方开源类库,比如JSONKit,AFNetWorking等。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为一名iOS程序员,掌握CocoaPods的使用是必不可少的基本技能了。但是苹果系统升级OS X EL Capitan Coco...原创 2016-05-20 14:35:08 · 601 阅读 · 0 评论