ios

iOS - Core Animation 核心动画的使用

09-19
1.简单使用示例 1.1 时钟 QClockView.h @interface QClockView : UIView /// 创建时钟界面 + (instancetype)q_clockViewWithFrame:(CGRect)frame; @end QClockView.m #define CLOCK_WIDTH self.bounds.size.width @interface QClockView () // 表盘 @property (nonatomic, strong) UIIma

iOS - iOS 适配

09-05
前言 什么是适配: 适应.兼容各种不同的情况. iOS 开发中,适配的常见种类: 1)系统适配, 针对不同版本的操作系统进行适配. 2)屏幕适配,针对不同大小的屏幕尺寸进行适配. iPhone 的尺寸:3.5 inch.4.0 inch.4.7 inch.5.5 inch . iPad 的尺寸:7.9 inch.9.7 inch.12.9 inch . 屏幕方向:竖屏.横屏. 1.系统适配 Objective-C // 获取系统版本 float systemVersion = [UIDevice

iOS - OC RunTime 运行时

08-18
1.运行时 运行时是苹果提供的纯 C 语言的开发库,是一种非常牛逼.开发中经常用到的底层技术. 1.1 运行时原理 Objective-C 是一门简单的语言,95% 是 C,只是在语言层面上加了些关键字和语法,真正让 Objective-C 如此强大的是它的运行时.它很小但却很强大,它的核心是消息分发. 1.Messages 执行一个方法,有些语言,编译器会执行一些额外的优化和错误检查,因为调用关系很直接也很明显.但对于消息分发来说,就不那么明显了.在发消息前不必知道某个对象是否能够处理消息.你

iOS - OC PList 数据存储

08-18
前言 直接将数据写在代码里面,不是一种合理的做法.如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低.因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据.如果要变动数据,直接修改数据文件即可,不用修改代码.一般可以使用属性列表文件存储 NSArray 或者 NSDictionary 之类的数据,这种 "属性列表文件" 的扩展名是 plist,因此也称为 "plist 文件". plist 是以 xml 文件形式存储的. 如

iOS - OC NSSize 尺寸

08-17
前言 结构体,这个结构体用来表示事物的宽度和高度. typedef CGSize NSSize; struct CGSize { CGFloat width; CGFloat height; }; typedef struct CGSize CGSize; 1.NSSize 结构体变量的创建与调用 // NSSize 结构体变量的创建与赋值 // 先定义变量,再赋值 NSSize size1; size1.width = 6; size1.height = 1; // 定义时直接赋值 NSSiz

iOS - OC Enum 枚举

08-17
前言 iOS 5.0 之后,提供了新的枚举定义方式,定义枚举的同时,可以指定枚举中数据的类型. typedef NS_OPTIONS(_type, _name) new; -> 位移的,可以使用 按位或 设置数值 typedef NS_ENUM(_type, _name) new; -> 数字的,直接使用枚举设置数值 位移型枚举: 使用 按位或 可以给一个参数同时设置多个 "类型".在具体执行的时候,使用 按位与 可以判断具体的 "类型". OC 中 6

iOS - OC 与 Swift 互相操作

08-17
前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架.Objective-C 框架或 C 类库. 1.在 Swift 中使用 Objective-C.C 代码 1.1 在 Swift 项目中使用 Objective-C.C 代码 1> 在 Swift 项目中创建 OC/C 的 .h 和 .m / .c 文件,文件中的格式为其本有的格式. 2> Xcode 提示是否创建 Objective-C

iOS - OC 基本语法

08-17
1.常见文件扩展名 .c C 语言源文件 .cc..cpp C++ 语言源文件 .m Objective-C 源文件 .mm Objective-C++ 源文件 .h 头文件 .pl Perl 源文件 .o Object(编译后的)文件 .app 可运行的应用程序(相当于 windows 中的 .exe) .dmg OS X 上的光盘文件压缩包(相当于 windows 中的 ISO) .pkg OS X 应用程序安装包(相当于 windows 中的 exe\msi 等) .ipa iOS 应用程

iOS - Swift PList 数据存储

08-16
前言 直接将数据写在代码里面,不是一种合理的做法.如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低.因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据.如果要变动数据,直接修改数据文件即可,不用修改代码.一般可以使用属性列表文件存储 NSArray 或者 NSDictionary 之类的数据,这种 "属性列表文件" 的扩展名是 plist,因此也称为 "plist 文件". plist 是以 xml 文件形式存储的. 如

iOS - Swift NSTimer 定时器

08-16
前言 public class NSTimer : NSObject 作用 在指定的时间执行指定的任务. 每隔一段时间执行指定的任务. 1.定时器的创建 当定时器创建完(不用 scheduled 的,添加到 runloop 中)后,该定时器将在初始化时指定的 ti 秒后自动触发. scheduled 方式: 创建并启动定时器. 默认将时钟以 NSDefaultRunLoopMode 模式添加到运行循环. 发生用户交互的时候,时钟会被暂停. /* public class func schedul

iOS - Swift NSTimeZone 时区

08-16
前言 public class NSTimeZone : NSObject, NSCopying, NSSecureCoding NSTimeZone 表示时区信息. 1.NSTimeZone 时区的创建 // 根据时区名称创建 let zone1:NSTimeZone? = NSTimeZone(name: "America/Chicago") // 根据时区缩写创建 let zone2:NSTimeZone? = NSTimeZone(abbreviation: "EST

iOS - Swift 与 Objective-C 互相操作

08-16
前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架.Objective-C 框架或 C 类库. 1.在 Swift 中使用 Objective-C.C 代码 1.1 在 Swift 项目中使用 Objective-C.C 代码 1> 在 Swift 项目中创建 OC/C 的 .h 和 .m / .c 文件,文件中的格式为其本有的格式. 2> Xcode 提示是否创建 Objective-C

iOS - Widget 小部件

08-14
1.Widget iOS extension 的出现,方便了用户查看应用的服务,比如用户可以在 Today 的 widgets 中查看应用的简略信息,然后点击进入相关的应用界面. 2.添加 Widget 添加 Widget 流程 1.添加 Today Extension 2.绘制 UI 3.调起 app 4 .数据共享 2.1 添加 Today Extension 在 Xcode菜单 => File => New => Target.. => 中选择 Today Extension

iOS - AVPlayer 音视频播放

08-14
前言 NS_CLASS_AVAILABLE(10_7, 4_0) @interface AVPlayer : NSObject @available(iOS 4.0, *) public class AVPlayer : NSObject NS_CLASS_AVAILABLE_IOS(8_0) @interface AVPlayerViewController : UIViewController @available(iOS 8.0, *) public class AVPlayerViewC

iOS - Photo Album 图片/相册管理

08-14
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIImagePickerController : UINavigationController <NSCoding> @available(iOS 2.0, *) public class UIImagePickerController : UINavigationController, NSCoding iOS 获取图片有三种方法: 直接调用摄像头拍照: 从相册中选择: 从图库中选择. UIImagePic

iOS - UIRefreshControl 刷新数据

08-14
前言 NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIRefreshControl : UIControl 1.UIRefreshControl UITableViewController 自带刷新控件. 使用 StoryBoard 创建的表格视图控制器可在 SB 的 TableViewController 中将 Refreshing 项设置为 Enableed,在控件为列表中将自动添加一个名为 Refresh Control

iOS - Delegate 代理

08-14
1.Delegate 1.1 协议 协议:是多个类共享的一个方法列表.协议中列出的方法没有相应的实现,计划由其他人来实现.协议中列出的方法,有些是可以选择实现,有些是必须实现. 1>.如果你定义了自己的协议,那么不必由自己实现它.但是,这就告诉其他程序员,如果要采用这项协议,则必须实现这些方法.这些方法可以从超类继承. 协议不引用任何类,它是无类的. 分类也可以采用一项协议. 2>.定义一个协议很简单:只要使用 @protocol 指令,后面跟上你给出的协议名称.定义一项协议时,可以扩展现有协

iOS - UIImagePickerController

08-10
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIImagePickerController : UINavigationController <NSCoding> @available(iOS 2.0, *) public class UIImagePickerController : UINavigationController, NSCoding iOS 获取图片有三种方法: 直接调用摄像头拍照: 从相册中选择: 从图库中选择. UIImagePic

iOS - UIStepper

08-10
前言 NS_CLASS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED @interface UIStepper : UIControl @available(iOS 5.0, *) public class UIStepper : UIControl 1.UIStepper 的创建 Objective-C UIStepper *stepper = [[UIStepper alloc] init]; [self.view addSubview:stepper]; Swi

iOS - UIToolbar

08-09
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIToolbar : UIView <UIBarPositioning> @available(iOS 2.0, *) public class UIToolbar : UIView, UIBarPositioning 工具条控件 UIToolbar 用做工具条按钮项(UIBarButtonItem)的容器,可以盛放一个或者多个工具条按钮项,一般放置在界面顶部或者底部.如果