iOS日常技术
文章平均质量分 66
常用的iOS开发技术
劉光軍_Shine
身后是苍茫黑夜,唯有拼命向前奔跑
展开
-
iOS中UITableView性能优化
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。 然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell...原创 2015-10-21 23:09:23 · 130 阅读 · 0 评论 -
iOS tableView的点击联动效果
效果是这样子的:如下图1639F260E-22C5-44CB-BA80-E17EF395BFAC.png导航栏上有两个按钮 点击时切换当前界面,当前的界面其实是一个tableview的cell,点击下一页或者上一页的时候tableview会上下翻页,就是这么个效果。2E8F76E55-A832-4D86-AE54-5BBF66DCC594.png...原创 2015-11-20 18:50:12 · 164 阅读 · 0 评论 -
iOS实现UITableViewDataSource与Controller的分离
写在前面在之前的项目中好多处用到了tableView,然而之前不懂得将代理方法实现分离,所以每在一处用到tableView就要在controller中写一遍UITableViewDataSource和UITableViewDelegate,实现tableView的基本功能中用到的tableViewDelegate的方法还算不太多,但是说到UITableViewDataSource...原创 2016-04-08 16:29:10 · 94 阅读 · 0 评论 -
iOS 关于UINavigationController的一些总结
写在前面导航栏是我们开发中经常遇见的一个控件,我们大概都明白它的工作机制等等,以前用的是同事之前封装好的一个基类,基本上自己也不用对它进行太多的修改,这也是给自己埋下了隐患,最近在做的工作是接手的别人写的代码,在对工程代码进行熟悉和开发的过程中,针对导航控制器遇到的一些问题做一下总结。主要问题在开发过程中主要发现了两个问题,接下来就逐一记录一下解决的方法一、手势右滑返回效果...原创 2017-05-18 15:40:05 · 111 阅读 · 0 评论 -
iOS UIBezierPath贝塞尔曲线常用方法
关于 UIBezierPathUIBezierPath这个类在UIKit中, 是Core Graphics框架关于path的一个封装,使用此类可以定义简单的形状,比如我们常用到,矩形,圆形,椭圆,弧,或者不规则的多边形UIBezierPath 基本使用方法UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线或曲线去创建。我们一...原创 2016-11-10 23:11:53 · 100 阅读 · 0 评论 -
iOS 实现NavigationController的titleView动态缩放效果
早就心水简书的个人中心界面的NavigationController动态缩放titleView效果,也就是如下图的效果:screenShot.png自己动手用Object-C和Swift两种语言各写了一个简单的小demo,下面先说一下用Object-C实现的简单原理.知识补充=====>因为在这个效果实现的过程中我遇到一些关于tableView的cont...原创 2016-05-27 16:23:07 · 199 阅读 · 0 评论 -
iOS富文本编辑WPAttributedMarkup的整理
最近在项目中使用到给label中固定的文字设置颜色和下划线以及点击事件的功能,使用到了WPAttributedMarkup这个代码, WPAttributedMarkup 是一个队富文本编辑集成的分类,使用比较简单,我抽时间看了一下他的gitHub上的介绍,发现是英文,然后我就对其README翻译成中文,以便以后更好的使用,我仿照作者给的事例demo写了一个testDemo,基本用...原创 2016-01-27 00:58:23 · 192 阅读 · 0 评论 -
iOS 手势滑动解锁功能简析
题记在平常的生活中,我们大概经常遇见手势滑动解锁---也就是九宫格啊,已经出现好久了,虽然随着Apple的指纹解锁的发展手势解锁虽然还有但是因为其不如指纹解锁方便也用的也少了,但是在大多数APP中这两种方式都是并存的,比如qq,微信,支付宝等等,最近项目里面也刚好有这个需求,趁着刚完成抽出时间来记录下来当时的一些思路,可能有的地方理解的不到位,还需多总结,闲言少叙了,看重点。功...原创 2017-10-25 20:32:15 · 445 阅读 · 0 评论 -
iOS 简单的App基础框架
自己写了一套简单的App常用的框架样式,就是比较传统的NavigationController+TabBarController结合的这种效果图:PageBlurTestGif.gif大体介绍:主要是两个容器来盛放子控制器,两个容器分别是UINavigationController 和 UITabBarController,在这两个控制器中,自行设置其子控制器....原创 2016-03-17 13:51:38 · 365 阅读 · 0 评论 -
iOS tableView的sectionHeader点击折叠方法
效果 如图:4AB0A241-6BFE-42EF-A887-0F6C24CDB9BB.png812E4841-C091-489B-971C-03165F0C2F2C.png在项目中遇到这个问题,总结出比较方便使用的方法《1》tableView的headerView和cell有些类似, 所以先创建一个类, 继承自UITableViewHeaderF...原创 2015-12-17 00:14:37 · 387 阅读 · 0 评论 -
iOS利用AVCaptureSession实现二维码扫描
1 首先使APP获得相机使用权限在plist文件中用source code的方式打开,添加如下代码:<key>NSCameraUsageDescription</key> <string>cameraDesciption</string>如果没有使应用获取相机使用权限,则使用过程中会崩溃。2 判断权限也就是针对是否...原创 2018-03-06 19:19:14 · 437 阅读 · 0 评论 -
iOS Xcode7设置启动图launchImage
使用LaunchScreen.storyboard设置启动图1.打开LaunchScreen.storyboardBD8898B0-F552-4AC4-AF85-2662919581BD.png2.在LaunchScreen.storyboard上拖入一个imageView087604F1-F373-4D9D-A61B-DD0F68426218.pn...原创 2016-01-15 17:13:04 · 135 阅读 · 0 评论 -
iOS Xcode9 封装生成.framework
iOS中.a与.framework库的区别参考这篇文章http://www.cocoachina.com/ios/20161012/17730.html73673A77-896B-44DB-9967-2B3321F0F65B.png从上面我们可以看出.a 和.framework的区别就是.a+.h+soureFile=.framework,这样的话,我们还是直接封...原创 2018-03-29 16:20:39 · 101 阅读 · 0 评论 -
iOS自定义带有动画效果AlertView
最近比较闲,提前为下个项目中需要用得到功能造个轮子.alertView在项目中应该经常用的到,然而用自带的系统控件多少缺乏点儿激情.于是打算给alertView加上一点点儿动画,(这里的动画用到的是faceBook的POP)提高用户体验.话不多说.看效果图先:第一个是弹出提示信息后自动消失的alertViewmessageAlert.png第二个是弹出带有but...原创 2016-04-07 16:15:47 · 115 阅读 · 0 评论 -
iOS webview捕获H5按钮方法
实现iOS webview捕获使用H5中按钮的点击方法,可以使用JSContext。1、在工程中Linked Frameworks and Libraries中加入JavaScriptCore.framework2、在使用的地方#import <JavaScriptCore/JavaScriptCore.h>3、实现webview的代理方法- (void)web...原创 2018-08-08 15:49:25 · 239 阅读 · 0 评论 -
iOS 可以纵向横向滑动的表格实现
背景screenCut.gif这个效果是今天公司项目里面遇上的,也是第一次遇见这种需求,所以记录下来,效果如上图。需求主要是可以实现上下的滑动,并且同时最左侧的“线路名称”这一列在向左滑动的时候是不能跟随滚动的。这个功能主要是实现用户可以方便查看关于一下难以看全的列表数据。下面说一下思路。代码大体思路由上面的GIF图和基本需求描述我们第一个想到的东西就是万能的...原创 2017-02-21 00:00:30 · 326 阅读 · 0 评论 -
Xcode同一Project创建多个target
写在前面新年回来,终于迎来了新项目,由于我们开发的APP主要用于自己家公司员工使用的,所以呢,需求要求新开发的APP需要根据员工的职能的不同使用对应的APP,两个APP界面相同,只是为了区分不能职能,具体就不细说了,当时想,这需要做两个APP嘛?就算copy的话也挺麻烦的啊,不偷懒的程序猿不是好程序猿,哈哈哈,这时我同事一句话提醒了我:target。利用Xcode的target...原创 2017-02-12 18:40:28 · 170 阅读 · 0 评论 -
iOS 使用MVVM模式实现Cell的点击响应
卷首最近新工作中用到的RAC+MVVM的开发模式,由于之前都是用MVC,从自己的菜鸡水平感觉这两种设计模式在思想上还是有些微区别的,然后自己也是看了挺多关于这两个模式异同与使用利弊的文章,但是说真的,代码这个东西光看看不出个花来,还是要写出来才能体会的更深,所以我不讲这两种模式的来龙去脉,我也讲不清 _, 要是看过比较多理论上的东西,再结合一下代码理理思路还是极好滴。目的介绍...原创 2017-07-25 23:47:12 · 193 阅读 · 0 评论 -
移动端基于LBS实现签到功能可行性分析
手机定位知识背景:1、GPS定位:通过接收卫星信号,直接得到手机的位置坐标。(不需要联网,可以完全离线定位,但是必须在天空比较开阔的地方,否则接收不到卫星信号。GPS定位,精度较高,可达到10米,但室内不可用,且超级费电。)。2、网络定位:网络定位,分为wifi定位和基站定位,都是通过获取wifi或者基站信息,然后查询对应的wifi或者基站位置数据库,得到的定位地点。定位数据库...原创 2017-08-18 17:28:23 · 437 阅读 · 0 评论 -
iOS关闭键盘退出键盘的几种方式
1、点击编辑区以外的地方(UIView)2、点击编辑区域以外的地方(UIControl)3、使用制作收起键盘的按钮4、使用判断输入字元1,点击编辑区以外的地方(UIView)这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch P...原创 2018-02-02 11:29:07 · 80 阅读 · 0 评论 -
iOS 类似复制链接打开淘宝APP后弹出页面功能
写在前面我们应该都有用过这个功能,你的朋友微信给你分享了一个淘宝里面的商品链接,然后当你复制这个链接打开淘宝APP的时候,就会弹出一个弹窗,像这样:example.PNG这个功能想必大家都挺熟悉,受这个启发我们产品也想在我们APP上添加这样一个功能,与这个不一样的是,当我们复制一段网址的时候打开我们的APP会弹出框填一些信息后上传到我们的“资源库”。大体功能就这...原创 2018-05-07 18:54:01 · 833 阅读 · 0 评论 -
iOS配置开发者证书流程整理
在配置开发者证书之前,先了解一下开发者中心里面关于证书的几个选项,方便了解整个流程3AB3C277-C304-456B-848F-16790F68BD30.png1、Certificates 开发者证书分为开发(iOS Development)和发布(iOS Distribution)两种类型。这个是最基础的,用来证明自己是开发者身份的。里面还包含推送APNS推...原创 2018-12-12 21:16:21 · 263 阅读 · 0 评论 -
iOS 百度地图定位签到实现
写在前面:项目需求用到这个功能,主要目的是实现老师设置位置签到范围,学生在一定范围内进行签到的功能。功能如下方截图:屏幕快照 2019-01-28 上午10.29.26.png简要介绍:下面记录一下主要的实现流程,功能的实现主要是根据百度地图开发者官网提供的api文档,各项功能之间组合。百度地图的SDK现在分成了地图功能和定位功能两块不同的SDK,BaiduM...原创 2019-01-28 11:10:21 · 518 阅读 · 0 评论 -
iOS推送语音播报(类似支付宝收款提醒)
需求分析实现类似支付宝微信收款后的语音播报如:支付宝到账xx元。要求是APP在前台运行、锁屏、杀死进程后都会有语音播报。那想到的解决方案就是利用推送了。功能实现思路分析上面说了,要使用推送,也就是APNs,这里我使用了极光推送,接下来就是实现手机接收到通知之后播报语音了,关于这个功能的实现在iOS10以后苹果新增了“推送拓展”UNNotificationServiceExte...原创 2019-04-01 10:30:51 · 811 阅读 · 0 评论 -
iOS H5微信支付总结
功能描述1、webView加载H5页面2、点击微信支付,调起微信客户端支付3、支付完成,返回APP操作流程1、调起微信的项目设置选中‘TARGETS’一栏,在‘info’中的‘LSApplicationQueriesSchemes’添加‘weixin’,已添加过的可以忽略此步骤2、H5拦截微信支付请求,跳转微信2.1 WKWebView/...原创 2019-12-30 17:13:06 · 824 阅读 · 0 评论 -
iOS addChildController的方法
使用默认的ViewController作为盛放childController 的容器。创建FirstViewController作为ChildViewController。在这里我只是简单的实验了一下两个控制器之间的跳转,其中并没有加入数据。因为两个控制器是分离开的。所以很大程度上降低了耦合度。 1 在viewcontroller中 @prop...原创 2015-11-16 23:54:18 · 119 阅读 · 0 评论 -
iOS json的反序列化
今天在项目里面遇到需要像服务器回传json格式的情况 以前没有遇到过 下面是解决方法 当然 这里的方法不包含 回去的参数里面有id这种特殊的处理哈 这种方法以后再研究吧// JSONHelper.h@interface JSONHelper : NSObject+ (NSData *)toJSONData:(id)theData;#import "JSONHelper....原创 2015-11-19 22:29:22 · 118 阅读 · 0 评论 -
iOS collectionView拖拽排序
项目中首页按钮按照需求需要实现拖拽排序并且记录排序后的布局,下次再进入APP后展示排序后的布局。功能分析实现此功能需要实现两个点,第一就是拖拽排序的实现,第二就是存储排序后的布局,针对第一个功能点,拖拽排序:这个可以使用collectionView系统自带的功能来实现,针对第二个功能点,我使用NSUserDefaults本地存储盛放collectionViewCell内容的数组...原创 2019-01-29 11:45:42 · 604 阅读 · 0 评论 -
iOS 记录navigationController的全屏滑动
看到@J_雨大牛的博客,讲的很细致,在此记录下第二种方法,以备以后使用,原文链接:http://www.jianshu.com/p/d39f7d22db6c#import "Nav.h"@interface Nav ()<UIGestureRecognizerDelegate>@end@implementation Nav- (void)viewDid...原创 2015-12-30 14:45:04 · 73 阅读 · 0 评论 -
iOS 关于时间的一些操作
1、基本时间日历// 1、获取当前时间 NSDate *now = [NSDate date]; NSDateFormatter *nowFormate = [[NSDateFormatter alloc] init]; nowFormate.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSString...原创 2018-02-23 11:43:00 · 88 阅读 · 0 评论 -
iOS AVFoundation动态人脸识别功能
一、AVCaptureSession:设备输入数据管理对象可以根据AVCaptureSession创建对应的AVCaptureDeviceInput、AVCaptureVideoDataOutput对象创建出来的Input、Output对象会被添加到AVCaptureSession中管理,代表输入、输出数据对象,它配置抽象硬件设备的ports。// 1.创建媒体管理会话...原创 2019-12-12 18:51:07 · 493 阅读 · 0 评论 -
iOS实现翻页效果动画
项目里面有一个接受消息然后将消息内容以翻页的形式展现给用户,返回的数据就是简单的文字没有图片,所以我就简单的用了textView接收然后在view上设置了翻页效果的切换动画,这个翻页切换也比较简单,就是用了一下系统的动画.效果如图:PageBlurTestGif.gif大体思路:在self.view 上放置一个label,label.text从数组中获得,当点...原创 2016-01-14 23:34:57 · 214 阅读 · 0 评论 -
iOS tableviewCell自适应高度
效果图:717EA841-8896-4B94-8D81-6654087CBA37.pngMVC在controller中1、创建对象@property(nonatomic, strong) UITableView *tableView; /**< tableview */@property(nonatomic, strong) NSArray *arr...原创 2015-12-21 14:30:44 · 179 阅读 · 0 评论 -
iOS 快速集成头部菜单栏
最近遇到很吸引我的代码,效果就是这种类似新闻APP的顶部滚动菜单栏:效果segmentHeader.gif功能快速集成顶部菜单栏拆分为SegementHead和SegmentScroll,分别设置头部视图和下方滚动视图。使用NSCache统计页面加载样式//头部样式typedef enum: NSUInteger{ /** * ...原创 2017-06-21 11:39:04 · 184 阅读 · 0 评论 -
iOS 自定义弹框
一个可以自定义弹出视图内容,弹出视图所在位置的小轮子。#import "CommanBottomPopView.h"#define LC_ACTION_SHEET_COLOR(r, g, b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1.0f]@interfa...原创 2017-10-25 22:51:13 · 148 阅读 · 0 评论 -
iOS 二维码扫描相关
写在前面最近项目要实现相机扫描二维码功能,具体要求:1、扫描框 2、扫描动画 3、相册识别二维码 4、声音反馈。记得之前用过三方库做过类似功能,但是也是知其然不知其所以然,然后今天自己用原生api简单封装了一个二维码扫描控件。项目结构介绍控件封装后主要结构如图:屏幕快照 2018-09-07 上午9.01.52.png如图中代码目录,vender里面放的...原创 2018-09-07 09:44:01 · 166 阅读 · 0 评论 -
iOS 跑马灯的实现
介绍我们一说起跑马灯第一个想到的就是:山寨机。接下来介绍的跑马灯和那个跑马灯是不一样滴。在iOS中,跑马灯是指label上的字自动滚动,形成类似跑马灯似的条幅。像这样子:autoRunLabel.gif接下来就简单看看这效果是怎么实现的。实现1、首先我们从这个图片里面能联想到如果实现这个效果必然需要使用到动画,或者还有有用scrollView的思路,这里我...原创 2016-12-28 10:32:18 · 232 阅读 · 0 评论 -
iOS UIAlertController二次封装
一:初始化+ (instancetype)initDLAlertControllerWithTitle:(NSString *)title message:(NSString *)message style:(DLAler...原创 2018-11-21 17:12:10 · 173 阅读 · 0 评论 -
iOS 登录、退出流程整理
写在前面仅以此文记录APP登录、退出登录比较简单核心的流程。流程梳理登录流程有两种情况,1、未登录时,打开APP先进入登录页面,点击登录后进入首页。2、已登录时,打开APP直接进入首页。这里我们已最精简的流程图表示这两种登录情况。1:未登录情况未登录.png2:已登录情况已登录.png代码编程我项目是用的RAC+MVVM开发的,可能有些地...原创 2018-11-21 19:20:41 · 793 阅读 · 0 评论