iOS
yofer张耀琦
我喜欢自己开朗的性格
展开
-
【iOS】纯Swift代码构建一个功能完善的APP
纯Swift代码构建一个功能完善的APP源代码地址:https://github.com/yoferzhang/FoodPin效果演示iOS11之后,导航栏可以设置这样变大的效果。在 ViewController 的 viewDidLoad() 方法中添加下面这行代码可以实现: // iOS11之后这个属性可以让导航栏往下滑动的时候title变大 navigationCon...原创 2018-12-27 15:47:24 · 1543 阅读 · 2 评论 -
AVFoundation Programming Guide(官方文档翻译3)Playback - 播放
使用 AVPlayer 对象控制资产的播放。在播放期间,可以使用一个 AVPlayerItem 实例去管理资产作为一个整体的显示状态,AVPlayerItemTrack 对象来管理一个单独轨道的显示状态。使用 AVPlayerLayer 显示视频。翻译 2016-08-07 19:30:52 · 2097 阅读 · 2 评论 -
AVFoundation Programming Guide(官方文档翻译4)Editing - 编辑
AVFoundation 框架提供了一个功能丰富的类集合去帮助音视频资产的编辑。 AVFoundation 编辑 API 的核心是一些组合。一种组合物是简单的一个或者多个不同媒体资产的轨道的集合。AVMutableComposition 类提供一个可以插入和移除轨道的接口,以及管理它们的时间序列。图3-1显示了一个新的组合是怎样从一些现有的资产拼凑起来,形成新的资产。如果你想做的是将多个资产合并为一个单一的文件,翻译 2016-08-07 19:32:28 · 4622 阅读 · 9 评论 -
AVFoundation Programming Guide(官方文档翻译5)Still and Video Media Capture - 静态视频媒体捕获。
从一个设备,例如照相机或者麦克风管理捕获,组合对象来表示输入和输出,并使用 AVCaptureSession 的实例来协调它们之间的数据流。你需要最低限度的了解:AVCaptureDevice 的实例表示输入设备,比如照相机或麦克风AVCaptureInput 的具体子类的实例从输入设备配置端口AVCaptureOutput 的具体子类的实例来管理输出一个电影文件或者静态图像AVCaptureSe翻译 2016-08-07 19:35:00 · 4773 阅读 · 6 评论 -
AVFoundation Programming Guide(官方文档翻译6)Export - 输出
必须使用 AVFoundation 框架提供的导出 APIs 去读写音视频资产。AVAssetExportSession 类为简单输出需要,提供了一个接口,例如修改文件格式或者削减资产的长度(见 Trimming and Transcoding a Movie)。为了更深入的导出需求,使用 AVAssetReader 和 AVAssetWriter 类。翻译 2016-08-07 19:36:37 · 2916 阅读 · 2 评论 -
AVFoundation Programming Guide(官方文档翻译7)Time and Media Representations 时间和媒体表示
基于视听资料的时间,比如一个电影文件或视频流,在AV Foundation 框架中是由 AVAsset 代表的。它的结构决定了大部分的框架工程。一些低层的数据结构(AV Foundation 使用来表示时间和媒体,比如样本缓冲区)来自 Core Media framework。翻译 2016-08-07 19:38:27 · 2959 阅读 · 4 评论 -
About HTTP Live Streaming官方文档翻译 [iOS]
HTTP Live Streaming (HLS) 是苹果公司的技术,有关流媒体直播和点播音频/视频内容,支持iPhone, iPad, iPod touch, Apple TV, 和 Mac。内部 对 HLS 内容的传递 使用与HTTP协议相同的协议来处理网络服务。 HTTP可以轻松地使用普通的Web服务器,而不是专门的流媒体服务器 来部署流媒体内容。HLS流行为像常规的网络流量。工作方式为预先缓存基础结构,比如内翻译 2016-08-10 21:52:58 · 3383 阅读 · 0 评论 -
私人通讯录Demo - iOS
Github地址:PersonalContacts-私人通讯录写在前面本 Demo 简单演示了一些小控件的应用。比如导航栏的设置;界面全部是代码写的,没有用stroyboard。UITextField,UILabel,UIButton等小控件的精确控制;页面之间的数据传输;数据的本地化存储;UITableView 的添加删除Cell在系统提供样式的Cell中代码添加自定义View利用原创 2016-09-06 09:22:36 · 1922 阅读 · 0 评论 -
集合间相互转换,浅谈相关内存管理,使用NSData处理数据,使用NSDate - iOS
NSArray 转换成 NSMutableArrayNSArray * array = @[@"one",@"two",@"three"];NSMutableArray * muArray = [NSMutableArray arrayWithArray:array];NSLog(@"muarray %@",muArray);NSDictonary 转换成 NSMutableDictionary原创 2016-08-14 15:52:14 · 1071 阅读 · 0 评论 -
NSSet 集合创建,获取,遍历,可变集合的删除 - iOS
NSSet 集合NSArray 自然顺序NSSet是无序的注意:这个是最为重要的功能 NSSet 中不能够存储重复的数据,可以用它来去除重复的值NSString * str1 = @"one";NSString * str2 = @"two";NSString * str3 = @"three";NSSet * set = [[NSSet alloc] initWithObjects:原创 2016-08-14 15:17:25 · 5250 阅读 · 0 评论 -
AVFoundation Programming Guide(官方文档翻译2)Using Assets - 使用Assets
Assets 可以来自文件或者媒体用户的iPod库、图片库。当你创建一个 asset 对象时,所有你可能想要检索该项目的信息不是立即可用的。一旦你有了一个电影 asset ,你可以从里面提取静态图像,转换到另一个格式,或者对内容就行修剪。翻译 2016-08-07 19:29:11 · 2240 阅读 · 4 评论 -
AVFoundation Programming Guide(官方文档翻译1)About AVFoundation - AVFoundation概述
AVFoundation 是可以用它来播放和创建基于时间的视听媒体的几个框架之一。它提供了基于时间的视听数据的详细级别上的Objective-C接口。例如,你可以用它来检查,创建,编辑或重新编码媒体文件。您也可以从设备得到输入流和在实时捕捉回放过程中操控视频。图I-1显示了iOS上的架构。翻译 2016-08-07 19:27:04 · 6197 阅读 · 3 评论 -
核心动画编程指南Core Animation Programming Guide - iOS
核心动画编程官方文旦的简单记录总结原创 2016-09-07 10:13:17 · 3508 阅读 · 0 评论 -
【iOS-ARKit】扫描和检测3D对象-Scanning and Detecting 3D Objects
记录真实世界对象的空间特征,然后使用结果在用户环境中查找这些对象并触发AR内容。Overview构建令人信服的AR体验的一种方法是识别用户环境的特征并使用它们触发虚拟内容的外观。 例如,当用户将他们的设备指向显示的雕塑或工件时,博物馆应用可以添加交互式3D可视化。在iOS 12中,您可以通过在ARKit中启用对象检测来创建此类AR体验:您的应用程序提供参考对象,它可以对已知真实世界...原创 2018-07-02 15:22:35 · 6591 阅读 · 0 评论 -
【iOS-ARKit】创建多用户AR体验-Creating a Multiuser AR Experience
使用MultipeerConnectivity框架在附近设备之间传输ARKit世界地图数据以创建AR体验的共享基础。Overview此示例应用程序演示了两个或更多iOS 12设备的简单共享AR体验。 在探索代码之前,请尝试构建并运行应用,以熟悉它演示的用户体验:在一台设备上运行应用程序。 您可以查看本地环境,然后点击以在真实世界的表面上放置虚拟3D角色。 (再次点击以放置该角...原创 2018-06-12 10:54:49 · 1911 阅读 · 2 评论 -
如何穿透TableView中的button滑动feeds流?
1. cell中的按钮如何透传滑动事件?tableviewcell中画了一个button,但是从button开始滑动tableview会失效,造成一定几率tableview无法滑动。1.1. UIView+UIImageView+UILabel 实现UIButton的效果第1种方法:用一个UIView实现UIButton的效果。UIView中画button的背景,文字,还要实现...原创 2018-05-23 14:56:52 · 1592 阅读 · 0 评论 -
Table View Programming Guide for iOS 官方文档翻译
About Table Views in iOS Apps( iOS应用程序中的Table View)Table views are versatile user interface objects frequently found in iOS apps. A table view presents data in a scrollable list of multiple rows tha...原创 2018-05-03 16:00:20 · 1983 阅读 · 0 评论 -
Cocoa设计模式(iOS常用设计模式) Cocoa Design Patterns
本文描述了Cocoa中设计模式的主要实现,主要关注模型(Model) - 视图(View) - 控制器(Controller)和对象建模。 本章的主要目的是让您更深入地了解Cocoa的设计模式,并鼓励您在自己的软件项目中利用这些模式。原创 2017-12-13 14:39:53 · 3318 阅读 · 0 评论 -
iPhone摄影中的深度捕捉(WWDC2017-Session 507)
介绍7plus双摄深度信息,开放API原创 2017-06-26 11:03:54 · 10352 阅读 · 1 评论 -
【iOS】Cocos2dx封装为view方便做3D动画效果
版权声明:本文为博主原创,如需转载请注明出处。写在前面本文件只是将Cocos2dx 封装为一个 UIView,方便直接添加使用使用的 coco2d-x 版本为 3.13.1添加过程首先将 ~/cocos2d/build/cocos2d_lib.xcodeproj 添加到工程中然后对照new出来的工程,修改配置:然后添加两个 Header Search Paths,同样对照样本工程设置TARGETS原创 2016-12-22 10:28:58 · 2187 阅读 · 0 评论 -
【iOS】iOS数据存储,应用沙盒,XML,Preference,NSKeyedArchiver归档,SQLite3
版权声明:本文为博主原创,如需转载请注明出处。应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Suppo原创 2016-11-30 21:33:21 · 2679 阅读 · 0 评论 -
ReplayKit库,iOS原生直播神器
前言ReplayKit 是WWDC15推出的苹果原生录屏 API。在iOS9的时候主要提供的是录屏,录制完成后可以进行查看、编辑、通过指定方式分享出去。在WWDC16上新版的 ReplayKit 提出了了 live 功能,简单说就是通过 ReplayKit 可以进行录屏直播。这对于苹果的手游直播行业有着很重要的意义。首先给出视频地址和API文档Go原创 2016-09-21 10:41:27 · 12089 阅读 · 1 评论 -
NSDictionary字典创建,获取,遍历,可变字典的删除 - iOS
字典是以键值对的形式来存储数据 key value1 NSDictionary 字典1.1 创建字典,不可变的NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil];NSLog(@"dic %@",dic);2016-08-14 14:44:17.460 07-字典类[232原创 2016-08-14 15:09:22 · 26485 阅读 · 0 评论 -
NSArray/NSMutableArray创建,获取,遍历,排序 - iOS
1 数组基本1.1 创建数组NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作下面这种方式相当于什么都没做NSArray * array = [[NSArray alloc] init];NSLog(@"%@",array);1.2 通过构造方法的方式创建一个NSArray在创建一个NSArray的时候,集合的最后一个元素一定是nilNSArray * array1 =原创 2016-08-14 15:08:09 · 12542 阅读 · 0 评论 -
Protocol 协议总结 - iOS
简单使用1 基本用途可以用来声明一大堆方法(不能声明成员变量)只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明只要父类遵守了某个协议,就相当于子类也遵守了2 格式协议的编写@protocol 协议名称 <NSObject> // 方法声明列表....@end3 关键字协议中有2个关键字可以控制方法是否要实现(默认是 @required ),在大多数情况下,用途在于程序原创 2016-08-13 21:10:11 · 3020 阅读 · 0 评论 -
KVO编程指南,Key-Value Observing Programming Guide翻译 - iOS
本文介绍Key-Value Observing,即KVO键值观察编程指南。包括怎么注册,移除观察者,使用场景。和键值编程相关的兼容性,手动通知和自动通知;一对一,一对多关系原创 2016-09-01 19:24:18 · 2262 阅读 · 0 评论 -
UIKit继承结构
UIKit继承结构原创 2016-08-21 21:46:35 · 829 阅读 · 0 评论 -
iOS程序启动过程,原理,UIApplication,代码启动界面 - iOS
程序启动的完整过程1.main函数2.UIApplicationMain创建UIApplication对象创建UIApplication的delegate对象3.delegate对象开始处理(监听)系统事件(没有storyboard)程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法在applicat原创 2016-08-21 21:31:46 · 2691 阅读 · 0 评论 -
iOS并发编程对比总结,NSThread,NSOperation,GCD - iOS
1. 多线程概念进程正在进行中的程序被称为进程,负责程序运行的内存分配每一个进程都有自己独立的虚拟内存空间线程线程是进程中一个独立的执行路径(控制单元)一个进程中至少包含一条线程,即主线程可以将耗时的执行路径(如:网络请求)放在其他线程中执行创建线程的目的就是为了开启一条新的执行路径,运行指定的代码,与主线程中的代码实现同时运行 1.1 多任务系统调度示意图 说明:每个应用原创 2016-08-30 21:26:55 · 4182 阅读 · 0 评论 -
cocos2dx在xcode8 GM版下的错误`libpng error:CgBI:unhandled critical chunk`
XCode 8 GM 版本编译 cocos2dx的代码,在加载 sprite 时,比如sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));会弹出错误:libpng error: CgBI: unhandled critic原创 2016-09-09 09:33:43 · 2007 阅读 · 3 评论 -
boundingRectWithSize:options:attributes:context:代替sizeWithFont:constrainedToSize:lineBreakMode:
之前用Text Kit写Reader的时候,在分页时要计算一段文本的尺寸大小,之前使用了NSString类的sizeWithFont:constrainedToSize:lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个boudingRectWithSize:options:attributes:context方法来代替:先来看看iOS7 SDK转载 2016-08-18 09:56:50 · 1212 阅读 · 0 评论 -
Xcode插件管理工具Alcatraz,常用插件介绍 -iOS
简单介绍Xcode插件的安装方式,并推荐几个比较好用的Xcode插件,清理缓存,快捷文档注释,自动补全图片名称,模糊方式补全代码,自动隐藏调试窗口,原创 2016-08-17 11:15:40 · 4631 阅读 · 0 评论 -
Notification通知,通知中心,发布通知,通知代理对比 - iOS
通知对象之间标准的信息传递方式:一个对象调用另一个对象的方法。这要求发送消息的对象知道谁接收消息,消息的响应是什么。但是比如两个独立的子系统,没有耦合关系,就需要另一种形式,通知 Notification通知中心(NSNotificationCenter)Cocoa 有两种类型的通知中心NSNotificationCenter类在单进程中管理通知NSDistributedNotification原创 2016-08-16 21:39:38 · 1775 阅读 · 0 评论 -
[iOS文档翻译]AVFoundation Programming Guide - About AVFoundation - AVFoundation概述
版权声明:本文为博主原创翻译,如需转载请注明出处。 苹果源文档地址 - 点击这里About AVFoundation - AVFoundation概述AVFoundation is one of several frameworks that you can use to play and create time-based audiovisual media. It provides原创 2016-08-04 18:09:07 · 1216 阅读 · 0 评论 -
AVFoundation Programming Guide(官方文档翻译)完整版中英对照
AVFoundation 是可以用它来播放和创建基于时间的视听媒体的几个框架之一。它提供了基于时间的视听数据的详细级别上的Objective-C接口。例如,你可以用它来检查,创建,编辑或重新编码媒体文件。您也可以从设备得到输入流和在实时捕捉回放过程中操控视频。图I-1显示了iOS上的架构。翻译 2016-08-07 19:42:35 · 8328 阅读 · 6 评论 -
[iOS]Advanced Memory Management Programming Guide 高级内存管理编程指南(官方文档翻译)
应用程序的内存管理是程序运行时内存分配的过程,使用它,并当你用完它的时候释放它。写得好的程序应该尽可能少的使用内存。在Objective-C,它也可以被看作是分布 数据和代码的许多块当中的有限的内存资源的所有权的方法。当您完成通过这一指南的工作,你将有一些关于你的应用程序的内存管理知识,你需要明确管理对象的生命周期,并且当他们不再需要管理时释放他们。翻译 2016-08-12 14:42:13 · 2725 阅读 · 0 评论 -
Block编程总结【iOS】
简单介绍一下 block 的定义,语法。和函数指针的对比。typedef的调用原创 2016-08-12 21:19:47 · 595 阅读 · 0 评论 -
iOS - @property 和 @synthesize 总结
@property用在 @interface 中用来自动生成 setter 和 getter 的声明用 @property int age; 就可以代替下面的两行- (int)age; // getter- (void)setAge:(int)age; // setter@synthesize用在 @implementation 中用来自动生成 setter 和 getter 的实现原创 2016-08-13 21:09:05 · 711 阅读 · 0 评论 -
Class 类的本质 - iOS
1 类也是个对象其实类也是一个对象,是 Class 类型的对象,简称 “类对象”Class 类型的定义#if !OBJC_TYPES_DEFINED/// An opaque type that represents an Objective-C class.typedef struct objc_class *Class;/// Repre原创 2016-08-13 21:07:12 · 805 阅读 · 0 评论 -
description 方法 和 SEL - iOS
description-description 方法使用 NSLog 和 %@ 输出某个对象时,会调用对象的 -description 方法,并拿到返回值进行输出+description 方法使用 NSLog 和 %@ 输出某个对象时,会调用类对象 +description 方法,并拿到返回值进行输出Class c = [Person class];NSLog(@"%@", c);会调用类的 +d原创 2016-08-13 21:00:45 · 658 阅读 · 0 评论