ios

KBMMW 中 IOS IPv6 的解决

09-25
    自从今年苹果强制新上架的APP 必须支持Ipv6,很多原来需要网络支持的APP 就没法上架了. 别的我们就不说了,先说说kbmmw 中,如何解决这个问题. 要测试你的app 是否支持ipv6, 首先要搭建IPv6 的测试环境,最简单的方法就是利用mac 来生成一个 共享的虚拟Ipv6 网络.具体搭建的方法参考此篇博文: http://www.cocoachina.com/ios/20160525/16431.html 剩下的就是在你的APP 里面,是否可以通过这个网络访问远程服务器?如果

iOS - UIView 动画

09-18
1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView 动画必须通过修改属性的真实值,才有动画效果. 1.1 block 方式 设置控件位置.尺寸.透明度等的代码,放在 animateWithDuration: block 中,将自动以动画的方式改变. // 开始动画,动画持续时间 2 秒 [UIView animateWithDuration:1.0

iOS - UIImageView 动画

09-18
1.UIImageView 动画 1.1 播放图片集 播放图片集 @property (nonatomic, strong) UIImageView *playImageView; self.playImageView = [[UIImageView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:self.playImageView]; // 创建图片集 NSMutableArray *imageArray = [NS

iOS - Quartz 2D 下载进度按钮绘制

09-16
1.绘制下载进度按钮 具体实现代码见 GitHub 源码 QExtension QProgressButton.h @interface QProgressButton : UIButton /// 进度值,范围 0 - 1 @property (nonatomic, assign) CGFloat progress; /// 进度终止状态标题,一旦设置了此标题进度条就会停止 @property (nonatomic, strong) NSString *stopTitle; /** * 创建带

iOS - QRCode 二维码

09-15
1.QRCode 在 iOS7 以前,在 iOS 中实现二维码和条形码扫描,我们所知的有,两大开源组件 ZBar 与 ZXing.iOS7 之后可以利用系统原生 API 生成二维码, iOS8 之后可以生成条形码, 系统默认生成的颜色是黑色. 1.ZBar 在扫描的灵敏度上,和内存的使用上相对于 ZXing 上都是较优的,但是对于 "圆角二维码" 的扫描确很困难. 2.ZXing 是 Google Code 上的一个开源的条形码扫描库,是用 java 设计的,连 Google Glas

iOS - Push 通知推送

09-13
1.UserNotifications 通知是 App 用来和用户交流的一种方式,特别是当 App 并没有在前台运行的时候.通知,正如它的名称所强调的,被用作向用户'通知'一个事件,或者仅仅向用户提示一条重要信息.总而言之,通知在提示类型的 App 当中非常有用,甚至在一些别的类型的 App 当中也是如此.比如,当用户进入一个指定区域(这是 iOS8 的新特性),一个下载任务完成,或者当朋友给你发送一条信息的时候,一条通知就可以被显示出来.无论如何,通知的目的就是获得用户的关注,然后他们就能处理

iOS - WXPay 微信支付

09-10
1.微信支付申请 微信支付官方集成指引 微信支付官方集成指导视频 微信 APP 支付开发者文档 微信公众平台 微信开放平台 微信商户平台 1.1 微信 APP 支付申请步骤 APP 支付:APP 支付又称移动端支付,是商户通过在移动端应用 APP 中集成开放 SDK 调起微信支付模块完成支付的模式. 1.1.1 第 1 阶段 1.注册微信开放平台帐号,注册成为微信开放平台开发者. 2.认证开发者资质,开发者资质认证通过后才可申请微信支付,申请审核服务费:300 元/次(年). 3.创建 APP

iOS - OC NSUserDefaults 数据存储

08-18
前言 @interface NSUserDefaults : NSObject 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在.如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUserDefaults 可以存储的数据类型包括:NSData.NSString.NSNumber.NSDate.NSArray.NSDictionary.如果要存储其他类型,则需要转换为前面的类型,才能用 NSUserDefaul

iOS - OC NSNull 空值

08-18
前言 @interface NSNull : NSObject <NSCopying, NSSecureCoding> 作为占据空间的一个空值,如用在数组或字典中占据一个没有任何值的空间. NULL & nil 的区别: nil 是 OC 的,空对象,地址指向空的对象,指针地址指向的是 NULL. 在 OC 中,可以给空对象(nil)发送任何消息,不会出现错误. NULL 是 C 的,空地址,地址的数值是 0,是一个长整数. 表示地址是空,不能给 NULL 消息. 从 Xcode 6

iOS - OC NSRect 位置和尺寸

08-17
前言 结构体 这个结构体用来表示事物的坐标点和宽高度. typedef CGRect NSRect; struct CGRect { CGPoint origin; CGSize size; }; typedef struct CGRect CGRect; 1.NSRect 结构体变量的创建与调用 // NSRect 结构体变量的创建与赋值 // 先定义变量,再赋值 NSRect rect1; rect1.origin.x = 6; rect1.origin.y = 1; rect1.size.

iOS - OC Struct 结构体

08-17
1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体类型变量 // 结构体类型变量为 d1,并赋值 struct MyDate1 d1 = {2016, 1, 6}; // 结构体类型变量值的调用 NSLog(@"d1: %d/%d/%d", d1.year, d1.month, d1.day); 2.typedef 定义结构体与调用 //

iOS - Swift SingleClass 单例类

08-16
前言 单例对象能够被整个程序所操作.对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到. 单例类的创建 1.1 单例类的创建 1 单例类的创建 class SingleClass1 { var text:String = "default" class var sharedInstance: SingleClass1 { struct Static { static var onceToken: dispatch_once_t

iOS - Swift NSNull 空值

08-16
前言 public class NSNull : NSObject, NSCopying, NSSecureCoding 作为占据空间的一个空值,如用在数组或字典中占据一个没有任何值的空间. 1.NSNull 的创建 // 返回一个单例类对象 let nl:NSNull = NSNull()

iOS - Swift NSRect 位置和尺寸

08-16
前言 结构体,这个结构体用来表示事物的坐标点和宽高度. public typealias NSRect = CGRect public struct CGRect { public var origin: CGPoint public var size: CGSize public init() public init(origin: CGPoint, size: CGSize) } 1.NSRect 结构体变量的创建与调用 // NSRect 结构体变量的创建与赋值 // 先定义变量,再赋值

iOS - Swift Struct 结构体

08-16
1.Struct 的创建 1.1 基本定义 结构体的定义 // 定义结构体数据类型 struct BookInfo { // 每个属性变量都必须初始化 var ID:Int = 0 var Name:String = "Default" var Author:String = "Default" var RootType:String = "Default" } 结构体的使用 // 定义结构体变量 let book = BookInfo() //

iOS - Swift 命令行输入输出

08-16
1.类输出 Swift 语言中类输出方法重构: override var description: String{ return String(format: "%@, %@", self.lastName, self.firstName) } 2.命令行输入 在 Swift 语言中添加命令行输入函数: 创建 C 语言的 .c 和 .h 及 桥接 文件,并添加自定义输入函数. // MyScanf.h #ifndef SwiftTestCode_MyScanf_h #define Sw

iOS - VIPER 架构模式

08-14
1.VIPER 从字面意思来理解,VIPER 即 View Interactor Presenter Entity Router(展示器(视图) 交互器 协调器 实体(数据) 路由器),迄今为止,划分责任的粒度是很好的选择.VIPER 在责任划分层面进行 了迭代,VIPER 分为五个层次: 展示器 -- 包含 UI 层面的业务逻辑以及在交互器层面的方法调用. 交互器 -- 包括关于数据和网络请求的业务逻辑,例如创建一个实体(数据),或者从服务器中获取一些数据.为了实现这些功能,需要使用服务.管理

iOS - UISearchController

08-10
前言 NS_CLASS_DEPRECATED_IOS(3_0, 8_0, "UISearchDisplayController has been replaced with UISearchController") @interface UISearchDisplayController : NSObject @available(iOS, introduced=3.0, deprecated=8.0, message="UISearchDisplayController h

iOS - UISlider

08-10
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISlider : UIControl <NSCoding> @available(iOS 2.0, *) public class UISlider : UIControl, NSCoding 1.UISlider 的创建 Objective-C // 高度不起作用,但不能为 0 ,为 0 时滑块无法滑动 UISlider *slider = [[UISlider all

iOS - UIControl

08-09
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIControl : UIView @available(iOS 2.0, *) public class UIControl : UIView UIControl 从字面翻译成为控制器,可以触发事件,达到和用户进行交互. 1.UIControl 的创建 Objective-C // 实例化 UIControl 对象 UIControl *control = [[UIControl alloc] initWit