
iOS
iOS学习,分享
hNicholas
这个作者很懒,什么都没留下…
展开
-
iOS Remote Control of Multimedia
remote-control 可以让用户通过外部接口控制应用程序音乐, 官方建议的做法是在View显示的时候接收remote-control事件[c-sharp] view plain copy- (void)viewDidAppear:(BOOL)animated { [super viewDidAppea转载 2016-09-22 15:29:44 · 418 阅读 · 0 评论 -
iOS自定义UITableViewCell registerNib: 与 registerClass: 的区别
自定义UITableViewCell大致有两类方法:使用nib 1、xib中指定cell的Class为自定义cell类型(注意不是设置File's Owner的class) 2、调用 tableView 的 registerNib:forCellReuseIdentifier:方法向数据源注册cell 复制代码[_tableVi转载 2016-05-31 10:48:18 · 1143 阅读 · 0 评论 -
iOS中使用常量、enum、宏,以及各自的使用场景
重要的事情首先说:在iOS开发中请尽量多使用const、enum来代替宏定义(#define);随着项目工程的逐渐增大,过多的宏定义还可能影响项目的编译速度。宏定义大家应该都不陌生,使用起来非常简单,首先我们先来看一下宏定义跟const的区别:1.宏在编译开始之前就会被替换,而const只是变量进行修饰;2.宏可以定义一些函数方法,const不能3.宏编转载 2016-05-31 11:57:39 · 678 阅读 · 0 评论 -
iOS 多线程中锁的使用
一、使用synchronized方式 //线程1 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ @synchronized(_myLockObj){ [obj1 method1];转载 2016-05-19 15:32:22 · 381 阅读 · 0 评论 -
iOS多线程之NSThread
1.创建和启动线程 一个NSThread对象就代表一条线程创建和启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];[thread start];// 线程一启动,就会在线程thread中执行self的run方法转载 2016-05-19 15:39:20 · 250 阅读 · 0 评论 -
iOS 属性声明在@implementation里与extension里的区别
当你新建一个类的时候, Xcode 会自动给你写上以下代码。#import @interface Car : NSObject@end#import "Car.h"@implementation Car@endObjective-C 编译器指令是以 @ 打头,它通常用来描述文件中的内容。.h 文件中 @interface 指令用来标识文件的接口代码的起始位置,而 @e转载 2016-05-19 20:39:26 · 2316 阅读 · 0 评论 -
iOS开发之-静态库
【静态库是什么】简单来说。。。一个静态库是若干个类,函数,定义和资源的包装,你可以将其打包并很容易的在项目之间共享。。。大家平时开发中看到的.a文件。。。其实也就是一个静态库文件。。。在开发的过程中我们会发现。。。有时候你导入了一些第三方框架。。。只看到.h文件。。。却找不到.m文件的踪迹。。。但是却可以成功地运行起来。。。这是为什么呢?其实。。。那些.m文件早已被包装在.a文件当中。转载 2016-06-08 15:04:24 · 374 阅读 · 0 评论 -
iOS UIViewAnimationOptions类型
常规动画属性设置(可以同时选择多个进行设置)UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动。UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互。UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行。转载 2016-06-24 18:04:07 · 2023 阅读 · 0 评论 -
iOS CALayer 理解position与anchorPoint
相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与position有什么关系?我也迷惑过,找过网上的教程,大部分都是复制粘贴的,有些是翻译的文章但很有问题,看得似懂非懂,还是自己写代码彻底弄懂了,做点笔记吧。每一个UIView内部都默认转载 2016-06-24 18:39:51 · 370 阅读 · 0 评论 -
iOS 初始化方法 initWithNibName、initWithCoder、awakeFromNib和 loadNibNamed说明
第一、initWithNibName这个方法是在controller的类在IB中创建,但是通过Xcode实例化controller的时候用的.第二、initWithCoder 是一个类在IB中创建但在xocde中被实例化时被调用的.比如,通过IB创建一个controller的nib文件,然后在xcode中通过 initWithNibName来实例化这个controller,那么这个cont转载 2016-05-31 10:11:04 · 4957 阅读 · 0 评论 -
iOS程序启动与运转
--零--从程序启动开始到view显示:start->(加载framework,动态静态链接库,启动图片,Info.plist等)->main函数->UIApplicationMain函数:1.加载二进制2.检查沙箱3.Objective-C Class Load Initialize-4._attribute_((constructor))函数,C++全局对象构造函数5.转载 2016-05-18 11:43:49 · 332 阅读 · 0 评论 -
模拟iOS网络环境
安装首先需要安装Hardware IO Tools for Xcode 点击Xcode->Open Developer Tool->More Developer Tools在弹出的开发者网站上选择对应Hardware IO Tools for Xcode版本下载安装网络环境模拟可以在“Hardware IO Tools for Xcode”中被找到搜索转载 2016-04-20 13:58:36 · 557 阅读 · 0 评论 -
iOS开发数据存储—libsqlite3和FMDB的基本使用和区别
一、简要介绍libsqlite3是iOS中纯C语言操作Sqlite数据库的一个库文件。使用起来和OC面向对象的方式有点别扭,不是特别的方便。FMDB是IOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言的API。FMDB使用起来更加的面向对象,省去了很多麻烦、冗余的C语言代码,对比苹果自带的Core Data框架,更加的轻量级和灵活。提供了多线程安全的数据库操转载 2016-05-13 22:13:23 · 1809 阅读 · 0 评论 -
iOS动画(Core Animation总结)
一、简介iOS 动画主要是指Core Animation框架。官方使用文档地址为:Core Animation Guide。Core Animation是IOS和OS X平台上负责图形渲染与动画的基础框架。Core Animation可以作用与动画视图或者其他可视元素,为你完成了动画所需的大部分绘帧工作。你只需要配置少量的动画参数(如开始点的位置和结束点的位置)即可使用Core A转载 2016-05-13 22:08:10 · 708 阅读 · 0 评论 -
NSTimer、CADisplayLink、GCD 三种定时器的用法
在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法。在这个时候,我们就需要用到定时器。在iOS中有很多方法完成定时器的任务,例如 NSTimer、CADisplayLink 和 GCD都可以。 一、NSTimer1. 创建方法 NSTimer *timer = [NSTimer scheduledTimerW转载 2016-05-16 11:53:22 · 407 阅读 · 0 评论 -
iOS文字渐变效果实现
// 创建UILabel UILabel *label = [[YZLabel alloc] init]; label.text = @"小码哥,专注于高级iOS开发工程师的培养"; [label sizeToFit]; label.center = CGPointMake(200, 100);转载 2016-05-16 14:18:03 · 2694 阅读 · 0 评论 -
iOS之单例模式常见写法
单例模式可能是设计模式中最简单的形式了,这一模式的意图就是使得类中的一个对象成为系统中的唯一实例。它提供了对类的对象所提供的资源的全局访问点。因此需要用一种只允许生成对象类的唯一实例的机制。下面让我们来看下单例的作用:可以保证的程序运行过程,一个类只有一个示例,而且该实例易于供外界访问从而方便地控制了实例个数,并节约系统资源。单例模式的使用场合类只能有一个实例,并且必须从一个为转载 2016-05-17 19:39:45 · 3807 阅读 · 0 评论 -
iOS: 使用CGContextRef,CGPath和UIBezierPath来绘画
这三种东西:CGContextRef,CGPath和UIBezierPath。本质上都是一样的,都是使用Quartz来绘画。只不过把绘图操作暴露在不同的API层面上,在具体实现上,当然也会有一些细小的差别。我们将主要使用这3个类型,绘制出同一张图片,如下,一个笑脸: 首先使用Quartz的CGPath来做这张图。很简单,首先创建用于转移坐标的Transform,然后转载 2016-05-17 19:49:08 · 469 阅读 · 0 评论 -
iOS 本地通知 UILocationNotification
在移动设备上,通常只有一个应用是处于活跃状态,如果这个时候其他的一些应用接收到新的消息或者发生变化,需要通知给用户,就可以通过通知机制来告知用户。此外,安装在设备上的App很多都成为了僵尸应用,安装之后就很少再打开使用,为了避免这种情况,在程序中可以添加通知,在指定的时刻来提示用户使用。 在IOS开发中,通知机制大致分为两大类,本地通知和远程通知,两种方式实现的效果一样,都是通过横幅或者弹出转载 2016-04-22 10:32:01 · 825 阅读 · 0 评论 -
iOS maskView使用
技术点:maskView(maskLayer)基本原理maskView配合CAGradientLayer的使用maskView配合带alpha通道图片的使用设计文本横向渐变消失的控件maskView(maskLayer)基本原理:png图片透明像素的原理maskView(maskLayer)可类比多张png图片的叠加遮罩,原理类似maskView是iOS8以上才转载 2016-06-24 20:13:17 · 3907 阅读 · 0 评论 -
iOS 中KVC、KVO、NSNotification、delegate 总结及区别
iOS 中KVC、KVO、NSNotification、delegate 总结及区别1、KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。Demo:@interface myPerson : NSObje转载 2016-06-12 11:32:44 · 319 阅读 · 0 评论 -
iOS 使用Autolayout实现UITableView的Cell动态布局和高度动态改变
本文翻译自:stackoverflow有人在stackoverflow上问了一个问题:如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的?这个问题得到了300+的支持和450+的收藏,答案得到了730+的支持,很详细的说明了如何在iOS7和iOS8上实现UITableView的动态行高功能,转载 2016-08-15 17:52:29 · 3803 阅读 · 0 评论 -
iOS APP与APP和APP与Safari间的跳转
最近做项目遇到这么一个需求:从APP 跳转到 Safari 然后再跳回APP 。以前做过从APP 跳到Safari ,很简单,这里就不多说了。重点说一下从Safari跳回到APP,以及从APP跳到APP。(其实这两个几乎是一回事。)首先从Safari跳到APP既然要想跳到你指定的APP,那么就需要在你的APP中定义一个特殊的标示,也就是一个URL协议。定义URL协议的如转载 2016-09-02 10:46:07 · 757 阅读 · 0 评论 -
iOS UITableView设置Section间距
在使用IOS的UITableView时,时常会用到它的UITableViewStyleGrouped分组多section属性。而默认的情况下使用该属性后section之间的间距会比较大,看着很不舒服。那么可以通过以下的代理方法配置UITableView各个section的间距。原理其实很简单,显示效果的各个section间距其实是section头部和底部的组合。配置他们的间距就是配置各个sec转载 2016-08-14 16:33:12 · 9176 阅读 · 0 评论 -
iOS 动画(Animation)总结
UIView的,翻转、旋转,偏移,翻页,缩放,取反的动画效果翻转的动画 [objc] view plain copy //开始动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimationD转载 2016-09-22 17:00:28 · 340 阅读 · 0 评论 -
iOS动画 CABasicAnimation
一、概念这个部分你需要了解以下概念: CALayer、CAAnimation1、CALayerCALayer是个与UIView很类似的概念,同样有backgroundColor、frame等相似的属性,我们可以将UIView看做一种特殊的CALayer。但实际上UIView是对CALayer封装,在CALayer的基础上再添加交互功能。UIView的显示必须依赖于CALayer。我转载 2016-09-22 17:57:48 · 400 阅读 · 0 评论 -
iOS NSScanner类的基本用法
NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串。可以在创建NSScaner时指定它的string属性,然后scanner会按照你的要求从头到尾地扫描这个字符串的每个字符。 创建一个Scanner NSScanner是一个类族, NSScanner是其中公开的一类。通常,可以用scannerWithString:或localized转载 2016-09-23 11:08:35 · 757 阅读 · 0 评论 -
iOS 字符串常用操作总结
搜索在一个字符串中搜索子字符串最灵活的方法1- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale转载 2016-09-23 11:27:21 · 1686 阅读 · 0 评论 -
开发者所需要知道的 iOS 10 SDK 新特性
总览距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 里的分屏多任务特性等等。Apple 近年都是在 WWDC 发布新的系统转载 2016-09-08 18:56:33 · 1323 阅读 · 0 评论 -
iOS中不同形式的图文混排技术的实现总结
那么什么是图文混排呢?在这里我给大家举个例子大家就明白了,例如我们在微博类,社交聊天应用中常常会遇到各种表情,各种链接的解析。问题来了,图文混排的形式有哪些呢?图文混排的形式?1. 富文本形式2. core Text(文字排版)3. TextKit4. UIWebView一.富文本我们可以采用attributeString来进行图文混排.例如一个文字上插入一个图转载 2016-08-15 17:06:23 · 568 阅读 · 0 评论 -
iOS开发-Realm数据库
RealmRealm-Object-c,见:https://realm.io/cn/docs/objc/latest/Realm官网:https://realm.io使用流程导入头文件#import .创建类,继承于RLMObject.在类中生成数据模型.在需要的地方创建实例,使用Realm方法调用.数据模型创建简单数据模型简单地,继承RLMObject创建转载 2016-08-15 15:28:35 · 681 阅读 · 0 评论 -
iOS NSExpression介绍
评估数学关于NSExpression你所要知道的第一件事就是它的主要目的是减少表达。如果你思考一下评估NSPredicate的过程,你会发现它有两个表达和一个比较符号,所以我们需要将两个表达简化为运算符可以处理的表达–非常像编译一行代码的过程。这就是我们要学习的NSExpression的第一招: 做数学题。NSExpression *expression = [NSExpres转载 2016-06-12 12:02:23 · 1224 阅读 · 0 评论 -
在iOS上绘制自然的曲线
这里有一篇很棒的文章写如何在Android上获取流畅的签名:Smoother Signatures,但是我没有找到一篇是写在iOS上如何实现。那么,究竟怎么做才能在iOS设备上获取用户的签名呢?虽然我没有找到任何关于获取签名的文章,但是在App store上已经有了实现得很好的app。 Paper by 53 是一个画画的iPad应用程序,它拥有漂亮并且灵敏的画笔,这转载 2016-06-13 12:43:39 · 6352 阅读 · 0 评论 -
iOS 封装本地化相关信息 NSLocale类介绍
本地化封装了关于语言,文化以及技术约定和规范的信息。用于提供于用户所处地域相关的定制化信息和首选项信息的设置。通过获取用户的本地化信息设置,我们可以为用户提供更加友好人性化的界面设置,包括更改应用程序的界面的语言,货币类型,数字,日期格式的格式化,提供正确的地理位置显示等等。IOS内置为应用程序的开发提供了很好的本地化机制,良好的本地化意味着应用程序可以为更多的用户提供服务。其中NSLocale类转载 2016-06-15 14:48:36 · 508 阅读 · 0 评论 -
iOS 使用cocoapods 找不到头文件
问题描述:使用cocoapods时,import 找不到头文件。问题原因:这是因为还没设置头文件的目录。解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT} ,后边选择recursive 。就可以了。注意:是在 User Header Search Paths 里添加,不是上面的 Header Search转载 2016-06-15 16:59:08 · 531 阅读 · 0 评论 -
iOS开发 给Label加下划线、中划线
iOS开发 给Label加下划线、中划线当我们在做一些购物类APP或者是商品展示类的APP时,我们经常会遇到某种商品打折优惠或者抢购的场景。并且为了吸引客户,商家一般把打折商品的现价和原价同时显示出来,进行对比,此时就出现了为展示原价的label添加中划线或者是下划线的需求。我们参考一下驴妈妈的首页:驴妈妈首页-中划线下面就直接上代码了:转载 2016-06-17 16:37:14 · 19946 阅读 · 1 评论 -
iOS ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics、Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环境下编译器不会自动管理CF对象的内存,所以当我们创建了一个CF对象以后就需要我们使用CFRelease将其手动释放,那么CF和OC相互转化的时候该如何管理内存呢?答案就是我们在需要时可以使用__bri转载 2016-07-07 11:56:42 · 387 阅读 · 0 评论 -
iOS AFNetworking3.0以上版本 基本使用
NSURLConnection被弃用了,这就是AFHTTPRequestOperationManager找不到的原因,它是基于NSURLConnection封装的!现在都用的是NSURLSession了,AFN中用的是AFHTTPSessionManager了~~ps:如果想用以前的话,cocoapods 就不要用最新的版本了,2.6的上面有。GET请求AFH转载 2016-07-08 14:26:32 · 2512 阅读 · 0 评论 -
iOS开发 UILocalNotification 本地通知实现提醒功能
1、本地通知的定义和使用:本地通知是UILocalNotification的实例,主要有三类属性:scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间;notification type,通知类型,包括警告信息、动作按钮的标题、应用图标上的badge(数字标记)和播放的声音;自定义数据,本地通知可以包含一个dictionary类型的本地数据转载 2016-08-03 18:21:24 · 586 阅读 · 0 评论 -
iOS NSJSONSerialization使用
一、将NSDictionary或NSArray转化为JSON串// 将字典或者数组转化为JSON串- (NSData *)toJSONData:(id)theData{ NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObj转载 2016-05-04 18:17:35 · 3173 阅读 · 0 评论