软件开发
文章平均质量分 69
软件iOS开发
这个作者很懒,什么都没留下…
展开
-
App开发团队必须知道的 iOS 11 更新点
WWDC 2017 已经过去差不多一个季度了,最近随着 Xcode 9 正式版以及 iPhone 8、iPhone X 的发布,iOS 11 的全面适配也被提上了日程。我整理了一下更新点,包括开发、设计、产品甚至是市场都应该注意的点,分享出来希望对大家有所帮助。新增框架ARKitiOS 11 引入了新的 ARKit 框架,让您轻松创建无可比拟的 iPhone 和 iPa转载 2017-09-25 20:06:50 · 1316 阅读 · 0 评论 -
让XCode自动CodeReview你的代码-OCLint使用
OCLint 是一个静态分析代码的工具,支持自定义规则,可以很好地帮助我们规范代码,这篇文章主要介绍通过OCLint让XCode来帮你Code Review,规范代码。OCLint相关的详细内容也可以到OCLint官网上查看。安装OCLint 和 xcpretty这里需要安装OCLint 和 xcpretty 工具1、 安装xcpretty用gem安装xcp转载 2017-09-28 12:28:09 · 1426 阅读 · 0 评论 -
iOS11&iPhoneX适配&Xcode9打包注意事项
1,适配UITableView1234567if#available(iOS11.0, *) {self.contentInsetAdjustmentBehavior= .neverself.estimatedRowHeight=0self.estimatedSectionH转载 2017-10-06 18:31:39 · 2268 阅读 · 0 评论 -
学习OpenGL ES之教你制作迷雾
原理雾效果的制作并不需要额外的几何体或者是粒子发射器,当然如果可以配合一些粒子效果会更好。雾的实现主要依赖于修改已有模型的颜色,根据渲染的顶点与观察者的距离,将雾的颜色与当前颜色混合。下面是2次exp计算模型的效果图,可以先感受一下。地形和天空都是上一篇文章使用的。我们先来看雾的线性计算模型,在这个模型下,我们要指定雾的起点,终点。也就是说雾在距离你多少的地方开始,距离多少的地方结转载 2017-10-07 20:07:16 · 496 阅读 · 0 评论 -
iOS11 适配之导航栏、tableView、searchBar遇到的bug
最近刚接手了个项目,在iOS11之前都没有问题,但是在iOS11上却出现了个别屏幕适配问题,其中包括:1、push进入下一个VC之后,导航栏在会往上移部分距离,大概20像素;2、VC中的tableView向下移动部分距离,以及cell直接的间隔会无故拉大;3、加载webView的时候会向下移动部分距离;4、放在导航栏上面的searchBar消失不见。虽然网上很多文章介绍解决的方法,但是我还是查阅了转载 2017-09-29 17:42:47 · 3617 阅读 · 1 评论 -
一个iOS 11BUG的发现、定位和解决
前言在iOS 11发布之后,出现了一系列适配相关的问题,UIScrollView在pagingEnabled=YES时滑动手势不灵敏,UITableView的滑动删除功能变动,UIImagePickerViewController的取消按钮点击区域变小等,本文介绍其中一个UIAlertView问题,分享其发现、定位和解决。正文1、问题产生问题的最初,是iOS 11正转载 2017-10-18 11:32:15 · 3181 阅读 · 0 评论 -
iOS开发中各种关键字的区别
1.一些概念1.浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存。深Copy:内存的复制,两块内存是完全不同的,也就是两个对象指针分别指向不同的内存,互不干涉。2.atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone转载 2017-10-19 09:37:10 · 4110 阅读 · 0 评论 -
iOS 简单而粗暴的说一说内存管理
既然是内存管理,首先要知道那么内存是用来干什么的?内存具体管理的东西是什么?当然这些东西基本都是常识了,内存当然是用来存储数据的,内存要管理的东西简单的说也就是如何将数据存储到内存中(比如说我们的声明变量就可以将数据存储到内存中),其次存储到内存中的数据怎样释放,什么时候释放,这都是内存管理需要来关心的,那么本篇文章将简单而粗暴的概述内存管理!(简单说一下个人对内存管理的一些理解,无代码示例,理解转载 2017-10-03 21:35:40 · 297 阅读 · 0 评论 -
iOS开发无法导出p12证书的问题解决办法
有关苹果无法导出p12 证书的问题解决办法:很多人刚接触苹果证书的时候感觉很复杂,大部分原因是因为都纯英文,然后再个加上步骤繁琐导致很多同学都不知所措,就算是出了问题也不知道从何查起。这篇文章不是申请证书的教程,如果找教程请移步iOS证书(.p12)和描述文件(.mobileprovision)申请或者Google之。今天就有关无法导出p12证书可能出现的原因做个解转载 2017-10-04 23:17:07 · 1302 阅读 · 0 评论 -
iOS开发细节 | "if else" VS "if return"
背景最近敲代码的时候对if else和if return有点纠结,因为这两种写法可以互换,最开始我是用的if else,后面看别人的代码很多用的if return,然后我也开始用if return,然而慢慢我感觉用if return好像有时还不如用if else来得更直观形象。于是我请教了一下老司机。问题如下:if else与if return的选择问题这两种写法可转载 2017-10-28 10:59:32 · 1080 阅读 · 0 评论 -
BAHome:iOS 面试题收藏录
1、把 "www.zhidao.baidu.com" 这样的字符串改成 "com/baidu/zhidao/www"此题目来自百度的面试题,博爱不才,用了几分钟整理了答案,如果有问题,请及时联系本人更改,多谢!/** 题目:把 "www.zhidao.baidu.com" 这样的字符串改成 "com/baidu/zhidao/www" */- (void)test1{转载 2017-10-29 09:21:21 · 592 阅读 · 0 评论 -
iOS中的MVP模式初探
先说一下MVC模式, 示意图如下:MVC模式示意图模型拿到数据, 可能是数据库或者网络数据最简单的比方, 我们拿到一个模型数组了之后, 这个就相当于是一个数据源.将数据传递给控制器, 控制器经过简单地加工数据源经过简单地处理加工, 比如在tableView中, 我们可能会使用数据源方法, 将模型数组中的元素取出来, 传递给Vi转载 2017-11-06 22:59:05 · 624 阅读 · 0 评论 -
iOS自定义启动界面
最近在重构app,原app用的是xcode自带的启动图设置。但相对来说自定义启动图可扩展性更强一点,今天花了一些时间弄了一下~思路是自定义一个控制器,在viewDidLoad的方法中调用要设置的启动图的方法,方法中主要是创建一个UIImageView,对UIImageView的image进行定义,设置启动停留时间,启动完毕移除该控件并跳转到首页或者登录界面。先上代码:1、设转载 2017-10-12 12:51:54 · 613 阅读 · 0 评论 -
iOS 11.0 iPhone X safeArea适配
iOS 11.0之后系统新增安全区域变化方法1234UIViewController中新增:- (void)viewSafeAreaInsetsDidChange;UIView中新增:- (void)viewSafeAreaInsetsDidChange;通过安全区域变化来改转载 2017-11-07 11:19:53 · 1725 阅读 · 0 评论 -
iOS蓝牙开发CoreBluetooth框架总结
概念iOS开发中,谈到蓝牙现在基本最常使用的框架就是CoreBluetooth框架了,使用该框架可以iOS设备与蓝牙设备或者iOS设备与其他非蓝牙设备的交互。蓝牙开发分为两种:中心者模式和管理者模式中心者模式我们的手机作为中心设备,连接蓝牙设备(这也是最常用的一种模式,比如使用我们的手机连接小米手环、空气净化器等;我们以下的开发也是基于这种模式。)转载 2017-10-13 13:59:25 · 423 阅读 · 0 评论 -
按钮防止被重复点击(iOS)
避免一个button被多次点击(共总结了3种)第一种:每次在点击时先取消之前的操作将这段代码放在你按钮点击的方法中,例如:12345- (void)buttonClicked:(id)sender{//点击按钮后先取消之前的操作,再进行需要进行的操作[[selfclass]cancelPrevi转载 2017-11-08 21:39:01 · 2056 阅读 · 0 评论 -
Xcode9和iOS 11遇到的一些问题
1、升级到Xcode9后新建一个工程,直接报错,如下图:因为在iOS7中引入的Top Layout Guide和Bottom Layout Guide,这些布局在iOS 11中被弃用,取而代之的是Safe Area Layout Guide. 解决办法就是将下图中系统默认勾选的两项去掉就可以了2、项目中用到了RealReachability来实时检测网络,但是用Xc转载 2017-10-14 16:53:23 · 760 阅读 · 0 评论 -
iOS开发小技巧及小知识点
1、Category(类别)什么是Category1、Category可以在不获悉不改变原代码的情况下向已有的类中添加方法,从而达到扩展已有类的目的,但是只能添加方法,不建议删除和修改(会导致bug)。2、无法向Category中添加实例变量,Category通常作为一种组织框架代码的工具来使用。3、如果Category和原始类中的方法名称冲突,则Cat转载 2017-11-09 13:00:21 · 298 阅读 · 0 评论 -
iOS UI事件传递与响应者链
响应者链响应者对象:继承自UIResponder的对象称之为响应者对象。UIApplication、UIWindow、UIViewController和所有继承UIView的UIKit类都直接或间接的继承自UIResponder。UIResponder一般响应以下几种事件:触摸事件(touch handling)、点按事件(press handling)、加速事件和远程转载 2017-10-15 13:31:25 · 381 阅读 · 0 评论 -
iOS 11更新后以及iPhone X推出后工程中遇到的问题及适配
1.UITableView滑动时右侧的滑动条忽长忽短的乱跳以及MJRefresh上拉刷新死循环这是因为tableView在iOS11默认使用Self-Sizing,tableView的estimatedRowHeight、estimatedSectionHeaderHeight、estimatedSectionFooterHeight三个高度估算属性由默认的0变成了UITableViewA转载 2017-11-01 19:24:26 · 539 阅读 · 0 评论 -
iOS简单高性能标签TagView(巧用YYLabel)
我相信很多人在开发者都有这样的需求,标签展示(如下图)很多人都可以自己实现(网上别人写的也很多,但是别人写的总有不满足自己需求的点),实现的方法也很多种,比如动态添加view,使用UICollectionView等等。这种实现方法不是不好,但是当列表比较复杂,数据比较多的时候,可曾想过性能会怎么样呢?在一次深入了解富文本的时候,突发其想,好像富文本能达到这种效果转载 2017-11-02 09:01:48 · 4539 阅读 · 0 评论 -
【iOS】绘画波浪篇
运行效果波浪效果图实现思路定义一个View,并增加圆形或者自定义背景视图画出静态正弦函数遮罩,mask层定时器,不断的改变路径上的各个点,让波浪动起来难点三角函数:假设 y = Asin(ωx+φ)+ CA 表示振幅,也就是使用这个变量来调整波浪的最大的高度ω 与周期相关,周期 T转载 2017-11-11 13:53:03 · 1191 阅读 · 0 评论 -
iOS 手写签名的简单实用封装
简介现在很多项目在完善信息或者注册信息的时候,或者支付这一方面,都希望用户手写签名,这样既可以保证是用户亲自签名的,保证该记录是用用户操作的,而不是别人操作的.所以手写签字这个还是比较重要的.下面就是通过QuartzCore来绘制签名.QuartzCore是iOS的核心动画框架.绘制1定义一个结构体1234转载 2017-11-12 16:15:41 · 1115 阅读 · 0 评论 -
iOS第三方平台集成组件化
背景 项目使用到了一些第三方平台的登录、分享、支付功能,包括了微信、微博、QQ平台登录分享和支付宝、微信平台的支付,使用的是原生的接入配置集成的,功能上基本上对照着SDK的开发文档就能够成功的集成了。但是问题也后面也渐渐的暴露出来了,第三方平台的登录、分享、支付功能不同平台的的SDK实现方式还是有很大的差别的,包括了输入的参数以及回调方式都有差别很大,如果只是简单的按照文档集成,那么一定转载 2017-11-13 12:06:19 · 324 阅读 · 0 评论 -
iOS蓝牙原生封装,助力智能硬件开发
引导语人工智能自1956年提出以来,一直默默无闻,近年来人工智能的发展得到重视逐渐发展起步,智能硬件、智能手环、智能家居等等逐渐走进人们的生活,大大方便人们的同时也带来了全新的用户体验和互联网一个新的发展方向。前言最近公司也在做硬件设备,作为一名iOS开发人员,主要负责手机软件、硬件的连接方面,开发连接硬件使用的SDK,其中主要模块是蓝牙连接,通过蓝牙与硬件设备连接,发送指转载 2017-11-17 12:07:24 · 535 阅读 · 0 评论 -
iOS开发关于“发送原图”功能问题的记录
近期在做“发送原图”功能的时候,遇到一个bug:在Android、Windows、Mac 客户端发送原图,iOS客户端接收,保存原图后,原图物理尺寸不变,存储空间变小,对应的location等Exif信息丢失。与此同时,iOS客户端之间互发原图没有问题。针对这个问题,做了以下测试调研,现记录下来:一. 首先介绍一下发送一张原图的流程:比如 Android 端发送一张原图,先转载 2017-11-03 21:11:33 · 763 阅读 · 0 评论 -
iOS TextView限制输入字数且屏蔽Emoji表情符号
一、实现的逻辑很简单且代码量不多,直接贴出源码供方便快速使用。12345678910111213141516@property (nonatomic, strong) UITextView *textView;@property (转载 2017-11-04 09:10:05 · 474 阅读 · 0 评论 -
iOS 代码的Taste(品位)
最近看了不少代码,想起写代码有意思的地方之一在于,实现同一个 feature,修复同一个 bug,不同程序员可以写出风格迥异的代码,甚至流程也不同,虽然最后都可行,从结果论的角度对用户来说是一致的。我们可以称这种差异为个人 taste,taste 有好坏高低之分,但有时候如何评定却很难有一个清晰准确的界定标准,一般来说代码是越简单越清晰越容易测试越好,但简单清晰容易测试又是另一个维度的标准,又会产转载 2017-11-18 21:45:20 · 187 阅读 · 0 评论 -
iOS开发代码规范
1. 关于命名1.1 统一要求含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释使用全称,不适用缩写1.2 类的命名大驼峰式命名:每个单词的首字母都采用大写字母1 例子:MFHomePageViewController后缀要求a.转载 2017-11-19 09:47:36 · 273 阅读 · 0 评论 -
iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
一、使用for循环优点:简单缺点:由于字典和集合内部是无序的,导致我们在遍历字典和集合的时候需要借助一个新的『数组』作为中介来处理,多出了一部分开销。二、使用NSEnumerator遍历优点:对于不同的数据类型,遍历的语法相似;内部可以简单的通过reverseObjectEnumerator设置进行反向遍历缺点:代码量稍大。三、使用for...In遍转载 2017-11-14 22:21:43 · 123 阅读 · 0 评论 -
iOS编程中的快递小哥-Responder Chain(响应链)
今天我们来聊下iOS编程中常见点击事件从分发传递到响应的完整流程1.事件类别Touch eventsUIView上的常见点击事件Press eventsAppleTV遥控器或者游戏控制器或其他带有实体物理键所触发的事件Shake-motion events由加速计、陀螺仪、磁力仪触发的事件转载 2017-11-15 10:48:57 · 312 阅读 · 0 评论 -
「iOS」高仿【少数派】客户端 代码+思路讲解
少数派一、写在前面在我的iOS开发学习过程中,阅读过许多同学的高仿项目文章、源码,对我助益颇深。但是许许多多的高仿项目在技术方面各有侧重,所以我先把本项目中值得探讨的技术点列出,方便正好需要的同学。本项目重点探讨:UITableview的性能优化UIScrollView的进阶使用少数派客户端导航栏动态效果的实现UITabl转载 2017-11-29 17:23:07 · 658 阅读 · 0 评论 -
iOS组件化实践(基于CocoaPods)
做iOS开发的同学对这张图片再熟悉不过了,在使用第三库的时候,cocoapods确实给我们带来了极大的方便。那么,我们如何制作自己的pod呢?下面是之前的实践笔记Demo中的组件式样:cocoapods文档提供了两种方法:方法1 pod lib create YeshifuShareUI方法2 pod spec create Yeshifu转载 2017-11-20 19:33:09 · 547 阅读 · 0 评论 -
iOS开发之模仿qq通讯录
这篇文章主要整理一下项目中用到的类似qq通讯录的收缩功能。我实现的思路是在tableview的header放置button,然后根据button是否选中来判断是否需要显示那一个section。首先定义了两个属性12@property(nonatomic,strong)UITableView *tableview;@pr转载 2017-11-30 09:57:22 · 530 阅读 · 0 评论 -
iOS 导航栏自带页面右滑pop使用
iOS7之后苹果导航控制器增加了一个左侧边缘右滑pop的手势,在非栈底的控制器里面,从左边右滑之后相当于出栈(pop)样子。以下设置均在自定义的UINavigationController里操作// 默认是YES 设置为NO左侧右滑手势就不可用了self.interactivePopGestureRecognizer.enabled = YES;也可以通过手转载 2017-12-08 16:52:57 · 589 阅读 · 0 评论 -
【iOS学习】RxSwift从零入手 - 介绍
“If you’ve ever used an asynchronous callback based API, you’ve probably dealt with handling the response data ad-hoc all across your codebase, and have most likely decided there was no way to unit te转载 2017-11-21 15:48:36 · 360 阅读 · 0 评论 -
iOS开发 仿微博的下拉提示框
TSSCrollStatusBar 是一个仿微博的下拉提示,大概效果如图0. 实现功能通过分类加属性,给UIScrollView添加了属性ts_scrollStatusBar,来显示和微博下拉刷新类似的下拉提示效果可以多行可以动态切换文案更多功能有待完善1. 原理通过给UIScrollView 写分类,在分类中添加转载 2017-11-22 13:29:02 · 718 阅读 · 0 评论 -
【iOS】今日头条菜单选项篇
ZZNewsSheetMenu关键词UIScrollView,UILongPressGestureRecognize,UIView,动画,视图效果运行效果image.png1.2版本更新1.修复无内容时隐藏标题增加抖动效果3.增加配置项 ZZNewsSheetConfig,可自由配置相关项4.增加重新更新布局方法,可根转载 2017-11-16 23:28:50 · 1242 阅读 · 0 评论 -
【iOS】老生常谈category增加属性的几种操作
前言日常开发中,为一个已有的类(比如说不想影响其文件结构)、第三方库提供的类增加几个property,已经是十分常见且需要的操作了,有人会单独起草一份category.m文件,也有人直接继承,像我一般会用category,一是能减少类文件的数量提高编译速度,二也是为了代码结构更加清晰。这篇文章是用来写Category的进行属性扩展的行为的,所以我还是言归正传,首先,我要阐述一下目前转载 2017-12-10 18:35:26 · 170 阅读 · 0 评论 -
【iOS学习】GKPhotoBrowser--自定义图片浏览器
前言最近发现许多常用的APP都有图片浏览器,于是想仿照着自己写一个,然后GKPhotoBrowser就应运而生,当然写的时候也仿照了其他的一些框架,但也加入了自己想要的一些功能,下面来详细介绍一下。参考框架KSPhotoBrowser,MJPhotoBorwserMJPhotoBrowser很早以前写项目的时候有用到过,也做过一些修改,但是这个框架现在已经不更新了。转载 2017-12-02 00:03:51 · 714 阅读 · 0 评论