自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

转载 iOS终极横竖屏切换解决方案

大家的项目都是只支持竖屏的吧?大多数朋友(这其中当然也包括博主),都没有做过横屏开发,这次项目刚好有这个需求,因此把横竖屏相关的心得写成一遍文章供诸位参考。01.综述大多数公司的项目都只支持竖屏,只有一两个界面需要同时支持横屏,就像视频 APP 一样,只有视频播放的时候需要横屏,其他时候都只允许竖屏。给出的 demo 中处理两种需要横屏的情形:

2017-07-25 11:36:46 1179

转载 iOS开发 调试 网络限速

在iOS开发中,针对不同网络状况做一下测试处理是很有必要的。但是我发现还是有一些ios开发者不太注意到不同网络环境下的调试问题,或者说不清楚如何调试这种情况。下面我将针对真机和模拟器分别做简单的说明。告诉大家如何模拟不同的网络状况。1.真机情况下其实Apple在iOS系统中预置了网络调试工具,但是只有添加过测试设备,并使用XCode连接下设备才能激活

2017-07-17 10:35:38 673

转载 iOS工作小技巧及填坑记录

以下是本人在iOS开发工作中使用的一些小技巧,记录一下。1.使用XXX.pch文件便捷开发+加速Build在IOS开发的项目中有一个XX_Prefix.pchXX_Prefix.pch:扩展名.pch表示"precompiled header",这是一个你工程要用到的来自于外部框架的头文件列表。xcode将编译这些头到文件,这将减少你在选择Build 或Build an

2017-07-13 15:10:16 558

转载 [iOS单元测试系列]单元测试编码规范

编写单元测试与编写工程代码略有不同。我们需要准备数据,mock对象,调用工程Api,验证结果。而且一般测试代码都会比工程代码要大。就像Real-World Testing with XCTest一文中提到“目前为止,我们的编码库已经纵横 190 个文件和 18,000 行代码,达到了 544 kB。我们测试部分的代码现在差不多有1,200 kB,大概有被测试代码的两倍”。那么应该如何定义单元测

2017-01-23 09:48:16 518

转载 [iOS单元测试系列]单元测试框架选型

XCTest Or GHUnit写测试用例总得有个框架吧,现在比较流行的就属Apple自带的XCTest和第三方的GHUnit。我们来看看他两之间的区别。 XCTest:与Xcode深度集成。而且可以享受Apple后续对XCTest升级的福利。 GHUnit:集成度不如XCTest,安装麻烦。但是有自己的GUI界面。 貌似都各有所长,那么我们来看看Github上的一些知名的开源库都用的是什

2017-01-23 09:47:09 1263

转载 [iOS单元测试系列]-译-OCMock常见使用方式

什么是mock?差不多就是纸老虎当我们写单元测试的时候,不可避免的要去尽可能少的实例化一些具体的组件来保持测试既短又快。而且保持单元的隔离。在现代的面向对象系统中,测试的组件很可能会有几个依赖的对象。我们用mock来替代实例化具体的依赖class。mock是在测试中的一个伪造的有预定义行为的具体对象的替身对象。被测试的组件不知道其中的差异!你的组件是在一个更大的系统中被设计的,你可以很有信

2017-01-23 09:45:59 999

转载 iOS 开发-单元测试

前言维基百科对单元测试的定义如下:在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。根据不同

2017-01-23 09:43:32 324

转载 iOS 单元测试

Xcode集成了对测试的支持,其中单元测试使用的是XCTest框架 ,良好的单元测试可以提高产品的稳定性,快速定位bug,节省开发时间。本文主要介XCTest单元测试的基础,测试方法,断言,期望,测试命令等等。快速入门在xcode新建项目中,默认都会给你建一个单元测试的target,如果你的项目没有,可以在导航中选择 File->New->Target->选择iOS-tes

2016-12-08 10:47:54 616

转载 iOS蓝牙4.0(BLE)-LightBlue与cc2540开发板通信

下面我们来一次做 iPhone 和 PC 与开发板的通信实验。只有 iPhone4S(含)以后的设备才支持低功耗蓝牙 BLE,我们这里做的实验使用的是 iPhone4s. 从 APP Store 里下载安装了 LightBlue 程序。通常,智能机设备作为主机,CC254x 作为从机,当然,CC254x 也可以作为主机,去连接当前状态为从机的智能机设备。需要说明的是

2016-12-08 10:34:21 1082

转载 iOS蓝牙4.0(BLE)-后台接收数据

原文地址:http://blog.csdn.net/jeikerxiao/article/details/51172150最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。步骤:1.修改plist文件在xxx-in

2016-12-08 10:31:38 926

转载 iOS 持续集成- Mac下命令启动和关闭Jenkins

原文地址:http://blog.csdn.net/jeikerxiao/article/details/51732425使用Java 命令来找到jenkins.war文件并运行。➜ java -jar /Applications/Jenkins/jenkins.war –httpPort=8080这样Jenkins就启动好了。Mac下命令关闭Jenki

2016-12-08 10:21:40 1833

转载 iOS 持续集成- 使用xctool实现自动化打包

iOS打包的流程:配置(编译器确定当前系统环境)-> 确定标准库和头文件的位置->确定依赖关系->头文件预编译(precompilation)->预处理(preprocessing)->编译(compilation)->连接(Linking)->打包使用教程将ipa_build这个文件夹移到和.xcodeproj或.xcworkspace同一级目录打开bui

2016-12-08 10:20:24 665

转载 iOS 持续集成- xctool 安装、使用

最近在搞自动构建,用了一下xcodebuild感觉输出的log可读性很差、对test的支持不好。然后转向了xctool。来看一眼xctool: xctoolxctool是facebook给出的自动化构建的解决方案,让构建和测试更容易,更好的支持持续集成。但xctool只是对xcodebuild的一个封装,因此xctool是基于xcodebuild的。先看下xco

2016-12-08 10:18:41 416

转载 iOS 持续集成- Jenkins+iOS+fir+蒲公英 搭建持续集成环境

今天用Jenkins+iOS+fir+蒲公英 搭建持续集成环境,把过程记录一下。第一步:安装Jenkins方法一:直接去官网下载安装包下载地址:http://jenkins-ci.org/ 下载后直接点击进入安装安装完成后在Terminal中输入命令,打开Jenkins:open /Applications/Jenkins/j

2016-12-08 10:16:25 570

转载 验证 HTTPS 请求的证书(五)

自 iOS9 发布之后,由于新特性 App Transport Security 的引入,在默认行为下是不能发送 HTTP 请求的。很多网站都在转用 HTTPS,而 AFNetworking 中的 AFSecurityPolicy 就是为了阻止中间人攻击,以及其它漏洞的工具。AFSecurityPolicy 主要作用就是验证 HTTPS 请求的证书是否有效,如果 app 中有一些敏感信

2016-12-06 14:24:55 2204

转载 AFNetworkReachabilityManager 监控网络状态(四)

AFNetworkReachabilityManager 是对 SystemConfiguration 模块的封装,苹果的文档中也有一个类似的项目 Reachability 这里对网络状态的监控跟苹果官方的实现几乎是完全相同的。同样在 github 上有一个类似的项目叫做 Reachability 不过这个项目由于命名的原因可能会在审核时被拒绝。无论是 AFNetworkReach

2016-12-06 14:24:14 897

转载 处理请求和响应 AFURLSerialization(三)

在前面两个部分已经分析过 AFNetworking 是对 NSURLSession 的封装,也了解了它是如何发出请求的,在这里我们对发出请求以及接收响应的过程进行序列化,这涉及到两个模块:AFURLResponseSerializationAFURLRequestSerialization前者是处理响应的模块,将请求返回的数据解析成对应的格式。而后者的主要作用是修改请求(主要是 H

2016-12-06 14:22:08 787

转载 AFNetworking 的核心 AFURLSessionManager(二)

负责创建和管理 NSURLSession管理 NSURLSessionTask实现 NSURLSessionDelegate 等协议中的代理方法使用 AFURLSessionManagerTaskDelegate 管理进度使用 _AFURLSessionTaskSwizzling 调剂方法引入 AFSecurityPolicy 保证请求的安全引入 AFNetworkReachabilityMana

2016-12-06 14:20:13 1226

转载 AFNetworking 概述(一)

在这一系列的文章中,我会对 AFNetworking 的源代码进行分析,深入了解一下它是如何构建的,如何在日常中完成发送 HTTP 请求、构建网络层这一任务。AFNetworking 是如今 iOS 开发中不可缺少的组件之一。它的 github 配置上是如下介绍的:Perhaps the most important feature of all, however,

2016-12-06 14:15:59 379

原创 如何创建私有 CocoaPods 仓库

一、概述CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便。个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有仓库来管理就很必要。对于CocoaPods还不太熟悉的,建议参考一下唐巧的博客或者直接到CocoaPods的官

2016-12-01 10:27:50 2923 2

原创 UIBezierPath贝塞尔弧线常用方法记

//根据一个矩形画曲线+ (UIBezierPath *)bezierPathWithRect:(CGRect)rect//根据矩形框的内切圆画曲线+ (UIBezierPath *)bezierPathWithOvalInRect:(CGRect)rect//根据矩形画带圆角的曲线+ (UIBezierPath *)bezi

2016-11-18 09:49:23 259

转载 IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)

原作者地址:http://blog.csdn.net/rhljiayou/article/details/9919713首先了解一下CGContextRef:An opaque type that represents a Quartz 2D drawing environment.Graphics Context是图形上下文,可以将其理解为一块画布,我们可

2016-11-14 16:27:50 413

转载 Widget的简单应用并适配iOS10

自iOS8之后,苹果支持了扩展(Extension)的开发,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。今年iOS10的推出,让Widget扩展应用渐渐的火了起来,地位得到重大的提升,从这也可以看出苹果对他的重视,今天我们就来一起学习下Widget,来实现一个简单的扩展程序。iOS Widget扩展程序

2016-11-11 10:29:17 1104

原创 NSLayoutConstraint-代码实现自动布局

你是否曾经想让你的app在横竖屏方向上看起来都表现良好而受挫?是否在做支持iPhone和iPad屏幕布局界面时几近大小便失禁?今天我将给你带来好消息!一直为大小相同的屏幕设计一个用户界面并不难,但如果屏幕的尺寸改变的话,UI元素的位置和大小也需要相应的做出改变。当然了到目前为止,你可以在Xib或者storyBoard中使用AutoLayout或者是Size Class进行布局,但是今天我们

2016-11-10 10:50:35 378

转载 xcode文件找不到---“AFNetworking.h”file not found

原文:http://blog.csdn.net/colin_smile/article/details/47775183今天遇到一个很奇怪的问题,在本地通过cocoapods引入AFNetworking包后,文件引入报错:“AFNetworking.h”file not found,但是拷贝到另一台电脑,能够重新运行,本以为是xcode出了问题,所以重新安装了xcode,但是问题依然存在。

2016-11-10 09:51:19 5265

原创 系统升级后由于Ruby版本低导致安装Cocoapods 不成功的解决办法

已经不是第一次安装cocoapods了, 但是今天在自己的mac pro 安装cocoapods 出现了  Error installing pods:active support requires Ruby version >= 2.2.2之前安装并没有出现个这个问题, 查了半天资料发现原来是ruby的版本太低了, 需要跟新Ruby. 然后接二连三的坑就出现了.首先要更新Ruby

2016-11-03 09:49:03 11072

转载 修改iOS工程的名字

我们在iOS开发中,难免会遇到项目做到一半要改名字的情况。如果项目名差的太大,工程名看起来总是不舒服的,有良心的开发者可能就会想着为工程改个贴切的名字,那么你就为用到本文记录的内容。如果我们开发的两个项目相差不大,只有部分主题、布局有更改,那么我们就可以拷贝之前已经完成的项目,改改名字,再对部分界面和代码稍稍修改就可以啦。如何修改工程名呢?下面我就拿一个中等大小的项目来实际操作一下,并

2016-10-11 08:51:23 6096 1

转载 QQ消除小红点(一键退朝)动画。

本来只是想写个可以拖动的小红点的,但写出乐趣来了,所以就多研究了研究,最后干脆封装了一下,可以实现给所有 View 添加黏贴效果。GitHub 链接效果如图:首先需要了解贝塞尔曲线,我觉得下面这个动图,看一遍就知道贝塞尔曲线怎么回事了。这是一个控制点(P1)的贝塞尔曲线,如果是两个控制点,则如下图一个控制点的取了两次点,才绘制出贝塞尔曲线,所

2016-09-05 17:19:34 843

转载 iOS开发 非常全的三方库、插件、大牛博客等等

简github排名:https://github.com/trending,github搜索:https://github.com/search.此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOSUI下拉刷新EGOTableViewPullRef

2016-09-01 09:17:56 9354 1

转载 IOS开发常用GitHub开源项目

IOS开发常用GitHub开源项目(持续更新)数据类开源库作者简介AFNetworkingMattt网络请求库ASIHTTPRequestpokeb网络请求库AlamofirecnoonSwift简洁网络请求库SBJ

2016-08-31 16:59:34 641

原创 iOS中按行读取txt格式的数据

我需要读取的close.txt文档中格式如下:用下面蓝色标记的三行代码即可读取每行数据连成的字符串,然后再对每行数据进行处理,然后封装到数据模型MACDModel中去。self.arr = [NSMutableArray arrayWithCapacity:0];        NSString *filePath = [[NSBundle mainBundle]

2016-08-31 16:09:11 8564

原创 关于UILabel设置AttributedString以后末尾...不出现的问题

UILabel我们都知道在内容盛不下的时候末尾就会显示...但是当你给UILabel设置AttributedString的时候就会发现,虽然内容盛不下,但是最后的...也是没有的这可能是AttributedString设置以后UILabel原本的设置就不生效了(包括字体,字体颜色等属性)如果你想要显示...需要手动再给UILabel设置截断模式NSM

2016-08-18 09:32:08 2225

转载 Runtime系列(消息转发)

前言一个方法的声明必定会有与之对应的实现,如果调用了只有声明没有实现的方法会导致程序crash,而实现并非只有中规中矩的在.m里写上相同的方法名再在内部写实现代码。正文先来回顾一下引文中的部分内容:当调用[receiver message]时,会触发id objc_msgSend(id self, SEL op, ...)这个函数。receiver通过isa指针找到当前对象的c

2016-08-05 16:23:28 281

转载 Runtime系列(Method Swizzling)

前言记得《大话西游2》中有这么个桥段,紫霞仙子和猪八戒中招移魂幻影大法后灵魂互换,当时看的也是泪流满面。。而Method Swizzling就是传说中的移魂幻影大法!身体还是那个身体,但是灵魂已被互换,同样的身体言行举止都变成被换对象。正文Mthod Swizzling.png代码很好理解,如果还在想为什么不会陷入死循环,是时候重温这部经典影片了。如果交换后再交换呢?

2016-08-05 16:22:30 313

转载 Objective-C Runtime(概述)

Objective-C Runtime本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。主要内容如下:引言简介与Runtime交互Runtime术语消息动态方法解析消息转发健壮的实例变量(Non Fragile ivars)Objective-C Associated Objec

2016-08-04 14:55:56 368

转载 IOS热更新-JSPatch实现原理+Patch现场恢复

原文:http://www.jianshu.com/p/41ed877aa0cd关于HotfixPatch在IOS开发领域,由于Apple严格的审核标准和低效率,IOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码热更新(HotfixPatch)对于IOS应用来说就显得尤其重要。现在业内基本上都在使用WaxPatch方案,由于Wax框架已经停止维护四五年了,所以

2016-08-04 14:50:47 672

原创 iOS 10 SDK 新特性

开发者所需要知道的 iOS 10 SDK 新特性总览距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 里的分屏多

2016-07-27 14:27:37 460

翻译 关于 iOS 10 中 ATS 的问题

WWDC 15 提出的 ATS (App Transport Security) 是 Apple 在推进网络通讯安全的一个重要方式。在 iOS 9 和 OS X 10.11 中,默认情况下非 HTTPS 的网络访问是被禁止的。当然,因为这样的推进影响面非常广,作为缓冲,我们可以在 Info.plist 中添加 NSAppTransportSecurity 字典并且将 NSAllowsArbitra

2016-07-27 14:22:44 1849

原创 iOS解决按钮短时间内多次点击只触发一次事件方法

在开发中,我们经常会写倒计时的功能,在解决按钮避免在短时间内多次点击的时候,  1.我们可以设置UIButton的enable属性,为NO,或者YES  2.还可以利用两个方法达到同样的效果,下面为代码.     可以很好地控制,几秒钟之后按钮点击才能执行方法.  - (void)btnClick{      [[self class] cancelPrev

2016-07-26 10:54:15 8676

翻译 contentSize、contentInset和contentOffset区别

有关这三者的区别,下面以斯坦福大学讲义中的几张图来解释:

2016-07-25 09:41:13 403

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除