【iOS】ReplayKit库,iOS原生直播神器

版权声明:本文为博主原创,如需转载请注明出处。

前言

ReplayKit 是WWDC15推出的苹果原生录屏 API。在iOS9的时候主要提供的是录屏,录制完成后可以进行查看、编辑、通过指定方式分享出去。

在WWDC16上新版的 ReplayKit 提出了了 live 功能,简单说就是通过 ReplayKit 可以进行录屏直播。这对于苹果的手游直播行业有着很重要的意义。

首先给出视频地址和API文档

【iOS】cocos2dx在xcode8 GM版下的错误`libpng error:CgBI:unhandled critical chunk`

版权声明:本文为博主原创,如需转载请注明出处。

XCode 8 GM 版本编译 cocos2dx的代码,在加载 sprite 时,比如

1
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

会弹出错误:

1
2
3
libpng error: CgBI: unhandled critical chunk
libpng error: CgBI: unhandled critical chunk
libpng error: CgBI: unhandled critical chunk

【iOS】View Programming Guide for iOS 视图编程指南

版权声明:本文为博主原创,如需转载请注明出处。

1 有关 Windows and Views

每个应用都至少有一个 window 和一个 view。

1.1 添加额外的 Window

一般在有外界显示设备的时候才需要添加额外的 window

下面的代码举了一个例子,这里假定对象实现了方法 externalWindow,externalWindow 存储一个 window 的引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- (void)configureExternalDisplayAndShowWithContent:(UIViewController*)rootVC
{
// Configure the content only if a second screen is available.
if ([[UIScreen screens] count] > 1) {
UIScreen* externalScreen = [[UIScreen screens] objectAtIndex:1];
CGRect screenBounds = externalScreen.bounds;

// Configure the window
self.externalWindow = [[UIWindow alloc] initWithFrame:screenBounds];
self.externalWindow.windowLevel = UIWindowLevelNormal;
self.externalWindow.screen = externalScreen;

// Install the root view controller
self.externalWindow.rootViewController = rootVC;

// Show the window, but do not make it key.
self.externalWindow.hidden = NO;
}
else {
// No external display available for configuration.
}
}

【iOS】KVO编程指南,Key-Value Observing Programming Guide翻译

版权声明:本文为博主原创翻译,如需转载请注明出处。

1 Introduction to Key-Value Observing Programming Guide - KVO编程指南介绍

Key-value observing is a mechanism that allows objects to be notified of changes to specified properties of other objects.

键 - 值观察是一种机制,当指定对象属性改变的时候允许另一个对象接受通知。

Important: In order to understand key-value observing, you must first understand key-value coding.

重要:了解键值观察之前,首先要理解键值编程 (key-value coding)

【iOS】iOS并发编程对比总结,NSThread,NSOperation,GCD

版权声明:本文为博主原创,如需转载请注明出处。

1. 多线程概念

进程

  • 正在进行中的程序被称为进程,负责程序运行的内存分配
  • 每一个进程都有自己独立的虚拟内存空间

线程

  • 线程是进程中一个独立的执行路径(控制单元)
  • 一个进程中至少包含一条线程,即主线程
  • 可以将耗时的执行路径(如:网络请求)放在其他线程中执行

创建线程的目的就是为了开启一条新的执行路径,运行指定的代码,与主线程中的代码实现同时运行



【iOS】私人通讯录Demo

Github地址:PersonalContacts

私人通讯录

写在前面

本 Demo 简单演示了一些小控件的应用。

  • 比如导航栏的设置;
  • 界面全部是代码写的,没有用stroyboard。
  • UITextField,UILabel,UIButton等小控件的精确控制;
  • 页面之间的数据传输;
  • 数据的本地化存储;
  • UITableView 的添加删除Cell
  • 在系统提供样式的Cell中代码添加自定义View
  • 利用第三方控件模拟网络请求等待,就是转菊花