- 博客(44)
- 问答 (1)
- 收藏
- 关注
原创 核心动画
核心动画标签(空格分隔): UICore Animation简介Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。Core Animation可以用在Mac OS X和iOS平台。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。要
2015-08-11 16:43:04 353
原创 CALayer
CALayer标签(空格分隔): UI[MJ博客]: http://www.cnblogs.com/mjios/archive/2013/04/13/3019335.html “”隐式动画只有非rootCalyer(根层)才有隐式动画。position:layer在父控件中的位置,以父层的左上角为原点(0, 0)anchorPoint:layer的锚点(它的x、y取值范围都是0~1,默认值为
2015-08-11 16:42:47 384
原创 Quartz2D
Quartz2D标签(空格分隔): UI图形上下文图形上下文(Graphics Context):是一个CGContextRef类型的数据作用: 保存绘图信息,绘图状态决定绘制的输出目标(绘制到什么地方去,输出目标可以是PDF文件、Bitmap或者显示器的窗口上) 绘图步骤自定义view在自定义View中重写drawRect:方法获取上下文拼接路径将路径添加到上下文将上下文渲染到目
2015-08-11 16:42:32 371
原创 UITabBarController
UITabBarController标签(空格分隔): UI跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换UITabBarController的简单使用UITabBarController的使用步骤初始化UITabBarController设置UIWindow的rootViewController为
2015-08-11 16:42:15 326
原创 UIStoryboardSegue(多控制器)
UIStoryboardSegue(多控制器)标签(空格分隔): UIUIStoryboardSegueStoryboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue)Segue的属性唯一标识@property (nonatomic, readonly) NSString *identifier;来源控制器@property (nonatom
2015-08-11 16:42:00 593
原创 UIWindow
UIWindow标签(空格分隔): UIUIWindow的显示创建窗口(程序自动创建窗口)self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];self.window.backgroundColor = [UIColor redColor];加载Main.storyboard,并且创建storyb
2015-08-11 16:41:43 338
原创 UIApplication
UIApplication标签(空格分隔): UI程序启动过程main -> UIApplicationMain -> 通知代理做事UIApplicationMain底层实现:// principalClassName:描述UIApplication的类名字符串// delegateClassName:描述UIApplication代理的类名字符串int UIApplicationMain(i
2015-08-11 16:41:25 347
原创 代理,通知,KVO的区别
代理,通知,KVO的区别标签(空格分隔): UI代理的使用步骤定义一份代理协议 协议名字的格式一般是:类名 + Delegate 比如UITableViewDelegate代理方法细节 一般都是@optional方法名一般都以类名开头 比如- (void)scrollViewDidScroll:一般都需要将对象本身传出去 比如tableView的方法都会把tableView本身传出
2015-08-11 16:41:08 438
原创 自定义不等高的cell
自定义不等高的cell标签(空格分隔): UI—每一个cell的高度并非都一样纯代码方式frame给模型增加frame数据所有子控件的framecell的高度@interface XMGStatus : NSObject/**** 文字\图片数据 ****/// ...../**** frame数据 ****//** 头像的frame */@property (nonatomic, a
2015-08-11 16:40:50 348
原创 自定义等高的cell
自定义等高的cell标签(空格分隔): UI—所有cell的高度都是一样的纯代码方式1.frame新建一个继承自UITableViewCell的子类,比如XMGTgCell@interface XMGTgCell : UITableViewCell@end在XMGTgCell.m文件中 重写-initWithStyle:reuseIdentifier:方法在这个方法中添加所有需要显示的子
2015-08-11 16:39:26 334
原创 Autolayout
Autolayout标签(空格分隔): UIiPhone4之前没有适配经常会出现坐标值写死的代码//#define ScreenW 320//#define ScreenH 480#define ScreenW [UIScreen mainScreen].bounds.size.width#define ScreenH [UIScreen mainScreen].bounds.size.
2015-08-11 16:39:10 254
原创 UIScrollView
UIScrollView标签(空格分隔): UI监听scrollView行为的3大步骤设置scrollView的delegate(代理)为控制器对象scrollView.delegate = 控制器;控制器要遵守UIScrollViewDelegate协议@interface 控制器 () <UIScrollViewDelegate>@end控制器要实现UIScrollViewDele
2015-08-11 16:38:55 322
原创 KVC&KVO
KVC&KVO标签(空格分隔): UIKVC全称:Key Value Coding(键值编码)作用 // 字典转模型 [p setValuesForKeysWithDictionary:dict]; // 修改私有的成员变量 [p setValue:@"20" forKeyPath:@"age"]; // 给模型的简单属性赋值
2015-08-11 16:38:39 287
原创 @property参数
@property参数标签(空格分隔): UI@property参数assign 基本数据类型、枚举、结构体等非OC对象类型weak OC对象类型(NSArray、NSDate、NSNumber、模型等)strong OC对象类型(NSArray、NSDate、NSNumber、模型等)一个对象只要有强指针引用着,就不会被销毁copy 一般用在NSString、block类型上w
2015-08-11 16:38:19 329
原创 模型&xib
模型&xib标签(空格分隔): UI模型概念:专门用来存放数据的对象特点 一般直接继承自NSObject在.h文件中声明一些用来存放数据的属性模型定义示例@interface Shop : NSObject /** 名字 */@property (nonatomic, strong) NSString *name; /** 图标 */@property (nonatomic, str
2015-08-11 16:38:01 324
原创 资源管理&懒加载
资源管理&懒加载标签(空格分隔): UI资源管理添加外界的代码、资源到本项目中,建议的设置选项 查看从外界加进来的代码、资源,有没有打包到本项目 懒加载当数据第一次被使用时才加载且只加载一次,懒加载的数据写在get方法中// 懒加载// 1.第一次用到时再去加载// 2.只会加载一次- (NSArray *)shops{ if (_shops == nil) {
2015-08-11 16:37:43 477
原创 UITableView
UITableView标签(空格分隔): UI如何让tableView展示数据设置数据源对象self.tableView.dataSource = self;数据源对象要遵守协议@interface ViewController () <UITableViewDataSource>@end实现数据源方法// 多少组数据- (NSInteger)numberOfSectionsInTab
2015-08-11 16:37:21 291
原创 UIImageVIew
UIImageVIew标签(空格分隔): UIcontenMode属性initWithImage:利用此方法创建出来的imageView的尺寸和传入的图片尺寸一样带有scale单词的:图片有可能会拉伸 UIViewContentModeScaleToFill 将图片拉伸至填充整个imageView图片显示的尺寸跟imageView的尺寸是一样的带有aspect单词的:保持图片原来的宽高比
2015-08-11 16:36:56 268
原创 UIButton&UILabel
UIButton&UILabel标签(空格分隔): UIUIButtonUIButton的背景图片的拉伸只能通过代码的方式拉伸(resizableImageWithCapInsets:),不能通过storyboard(UIImageView却可以)使用@implementation ViewController- (void)viewDidLoad { [super viewDidLo
2015-08-11 16:36:33 294
原创 UI初识
UI初识标签(空格分隔): UIUIView(视图)可以看得到、摸得到的东西都可以理解为视图作用:布局界面所有的控件,都继承自UIView(位置、宽度、高度…)UIViewController通常负责一个完整地界面视图中的逻辑控制storyboard(故事板)作用:描述软件界面程序启动的简单过程 程序一启动,就会加载Main.storyboard文件会创建箭头所指的控制器,并且显示
2015-08-11 16:35:54 356
原创 SDWebImage
SDWebImage标签(空格分隔): 知识补充简介已经实现了内存/磁盘缓存,并且能够防止重复下载一般情况会在applicationDidReceiveMemoryWarning方法中取消正在下载的任务[[SDWebImageManager sharedManager] cancelAll];cleanDisk清除已经过期的图片,并且如果剩余的图片大于最大的缓存大小,会继续删除未过期的图片c
2015-08-11 16:30:40 256
原创 压缩-解压
压缩/解压标签(空格分隔): 知识补充ZipArchive压缩/* 打包一个文件, 压缩一个文件 第一个参数: 压缩文件的存储位置 第二个参数: 需要压缩的文件 */ /* NSArray *arr = @[ @"/Users/apple/Desktop/Snip20150810_13.png",
2015-08-11 16:30:24 282
原创 CocoaPods
CocoaPods标签(空格分隔): 知识补充安装CocoaPods的步骤:升级一下gem sudo gem update --system切换CocoaPods的数据源gem sources --remove https://rubygems.org/gem sources -a http://ruby.taobao.org/gem sources -l安装CocoaPods s
2015-08-11 16:30:03 257
原创 单例
单例标签(空格分隔): 知识补充概念:不管在哪用什么方式创建,在一个程序中单例对象只会存在一份,只有一份内存,可供全局使用。一般情况下如果一个类是单例,那么都会提供一个类方法勇于快速创建单例对象,而且这个类方法的名称有一定的规律:share + 类名称default + 类名称类名称开头把以下代码放入一个.h文件中,包含这个文件就可以快速创建单例了使用方法: 创建一个Single.h文
2015-08-11 16:29:46 287
原创 transform
transform标签(空格分隔): 知识补充transform属性在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度(二维)常用的创建transform结构体方法分两大类创建“基于控件初始位置”的形变CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransfor
2015-08-11 16:29:30 384
原创 定时器的使用
定时器的使用标签(空格分隔): 知识补充OC中定时器主要有2种:NSTimer,CADisplayLinkCADisplayLink// 屏幕1秒刷新60次,每一次屏幕刷新的时候就会调用,1秒调用60次// 创建一个定时器,target对象会调用sel方法+ (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel
2015-08-11 16:29:04 318
原创 Push和Modal的区别
Push和Modal的区别标签(空格分隔): 知识补充切换控制器的两种方法:push,modalPush(代码方式,storyboa方式)- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; // Uses a horizontal slide transition. Has
2015-08-11 16:28:47 1360
原创 系统方法调用总结
系统方法调用总结标签(空格分隔): 知识补充程序加载进类存的时候调用,只会调用一次,最先调用的方法+(void)load{}程序加载View的时候调用,loadView方法是用来负责创建UIViewController的view,自定义View的时候可在此方法中实现,每次访问UIViewController的view(比如controller.view、self.view)而且view为n
2015-08-11 16:28:30 302
原创 通知
通知标签(空格分隔): 知识补充需要掌握通知的发布通知的监听通知的移除通知中心每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么。其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知
2015-08-11 16:28:12 272
原创 键盘的弹出和隐藏
键盘的弹出和隐藏标签(空格分隔): 知识补充—利用通知的方法监听键盘位置的改变代码:#import "ViewController.h"@interface ViewController ()// 获得TextField属性@property (weak, nonatomic) IBOutlet UITextField *textField;// 获得TextField的底部间距属性@pro
2015-08-11 16:25:27 279
原创 NSRunLoop(运行循环)
NSRunLoop(运行循环)标签(空格分隔): 多线程基本介绍保持程序的持续运行处理App中的各种事件(比如触摸事件、定时器事件、Selector事件)节省CPU资源,提高程序性能:该做事时做事,该休息时休息IOS中有2套API来访问和使用RunLoop NSRunLoopCFRunLoopRefNSRunLoop和CFRunLoopRef都代表着RunLoop对象RunLoop与
2015-08-11 16:23:34 289
原创 多线程补充
多线程补充标签(空格分隔): 多线程延迟执行delay#pragma mark - 延迟执行- (void)delay{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"延时执行");
2015-08-11 16:22:48 301
原创 NSOperation
NSOperation标签(空格分隔): 多线程简介NSOperation是个抽象类,并不具备封装操作的能力,必须使用它的子类使用NSOperation子类的方式有3种NSInvocationOperationNSBlockOperation自定义子类继承NSOperation,实现内部相应的方法配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOpe
2015-08-11 16:22:14 302
原创 GCD
GCD标签(空格分隔): 多线程简介全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”纯C语言,提供了非常多强大的函数GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码任务和
2015-08-11 16:21:38 377
原创 线程状态-互斥锁-通信
线程状态/互斥锁/通信标签(空格分隔): 多线程线程的5种状态新建、就绪、运行、阻塞、死亡 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // 线程的新建 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selec
2015-08-11 16:21:04 537
原创 多线程的四种技术说明
多线程的四种技术说明标签(空格分隔): 多线程Pthread(C)// 第一个参数: 线程的代号(当做就是线程)// 第二个参数: 线程的属性// 第三个参数: 指向函数的指针, 就是将来线程需要执行的方法// 第四个参数: 给第三个参数的指向函数的指针 传递的参数pthread_t threadId;// 只要create一次就会创建一个新的线程pthread_create(&thre
2015-08-11 16:20:23 364
原创 文件存储
文件存储标签(空格分隔): 文件存储沙盒(Documents,tmp,Library)每个应用程序都有自己的应用沙盒(应用沙盒就是文件系统目录)应用程序必须待在自己的沙盒里,其他应用不能访问该沙盒Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目
2015-08-11 16:17:53 356
原创 事件传递
事件传递标签(空格分隔): 事件处理不能响应事件的三种情况控件不能获得和界面的交互(UIImageView默认就不能获得和界面的交互)控件是隐藏状态控件的alpha(透明度)< 0.01寻找事件的最佳响应者 点击蓝色View,会触发一次点击事件首先点击事件传递给UIApplicationUIApplication传递给UIWindow(UIWindow接收到事件那一刻执行hitTest方
2015-08-11 16:14:53 387
原创 事件响应
事件响应标签(空格分隔): 事件处理响应者对象只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件UITouch当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象,一根手指对应一个UITouch
2015-08-11 16:14:08 452
原创 UIGestureRecognizer(手势处理)
UIGestureRecognizer(手势处理)标签(空格分隔): 事件处理UIGestureRecognizer为了完成手势识别,必须借助于手势识别器—-UIGestureRecognizer利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势
2015-08-11 16:13:06 347
空空如也
xcode7无意中点到了一个替换功能,现在不好了
2015-09-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人