摘要: 开启定时器 关闭定时器 阅读全文
posted @ 2017-03-19 22:23 iFat 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 通过addTarget: 只有继承自UIControl的控件,才有这个功能 UIControlEventTouchUpInside : 点击事件(UIButton) UIControlEventValueChanged : 值改变事件(UISwitch、UISegmentControl、UISlid 阅读全文
posted @ 2017-03-19 22:19 iFat 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 作用:用来监听控件的某些行为代理:是控制器对象代理:是id类型,并且是弱指针(weak)代理协议的格式:控件类名+Delegate,比如UIScrollViewDelegate、UITableViewDelegate代理方法:方法名一般是控件名开头,比如UIScrollView的代理方法一般以scr 阅读全文
posted @ 2017-03-19 22:15 iFat 阅读(93) 评论(0) 推荐(0) 编辑
摘要: // ViewController.m // 05-UIScrollView的代理(delegate) #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad];... 阅读全文
posted @ 2017-03-19 21:53 iFat 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 一般情况下,就设置UIScrollView所在的控制器 为 UIScrollView的delegate 设置控制器为UIScrollView的delegate有2种方法: 通过代码(self就是控制器) self.scrollView.delegate = self; 通过storyboard拖线( 阅读全文
posted @ 2017-03-19 21:48 iFat 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停止滚动 时做一些特定的操作 要想完成上述功能,前提条件就是能够监听到UIScrollView的整个滚动过程 当UIScrollView发生一系列的滚动操作时, 会自动通知它的代理(delegate)对象,给它的代理发送相 阅读全文
posted @ 2017-03-19 21:42 iFat 阅读(145) 评论(0) 推荐(0) 编辑
摘要: #pragma mark - 按钮的点击 - (IBAction)top { /* [UIView animateWithDuration:2.0 animations:^{ // CGPoint offset = self.scrollView.contentOffset; // offset.y = 0; // self.scrol... 阅读全文
posted @ 2017-03-19 20:50 iFat 阅读(169) 评论(0) 推荐(0) 编辑
摘要: @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置(其实就是内容左上角与scrollView左上角的间距值) @property(nonatomic) CGSize contentSize; 这个属性用来表示UI 阅读全文
posted @ 2017-03-19 20:26 iFat 阅读(113) 评论(0) 推荐(0) 编辑
摘要: // ViewController.m // 展示大图片 #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; @end @implementation ViewController - (void... 阅读全文
posted @ 2017-03-19 18:34 iFat 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1.循环retian基本概念 循环retain的场景 比如A对象retain了B对象,B对象retain了A对象 循环retain的弊端 这样会导致A对象和B对象永远无法释放 循环retain的解决方案 当两端互相引用时,应该一端用retain、一端用assign 循环retain的场景 比如A对象 阅读全文
posted @ 2017-03-19 18:12 iFat 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 1.@class基本概念 作用 可以简单地引用一个类 简单使用 @class Dog; 仅仅是告诉编译器:Dog是一个类;并不会包含Dog这个类的所有内容 具体使用 在.h文件中使用@class引用一个类 在.m文件中使用#import包含这个类的.h文件 作用 可以简单地引用一个类 简单使用 @c 阅读全文
posted @ 2017-03-19 17:34 iFat 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 1.控制set方法的内存管理 retain : release旧值,retain新值(用于OC对象) assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型) copy : release旧值,copy新值(一般用于NSString *) 2.控制需不需要生成set方法 readwr 阅读全文
posted @ 2017-03-19 17:08 iFat 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1.内存管理原则 苹果官方规定的内存管理原则 谁创建谁release : 如果你通过alloc、new、copy或mutableCopy来创建一个对象,那么你必须调用release或autorelease 谁retain谁release: 只要你调用了retain,就必须调用一次release 总结 阅读全文
posted @ 2017-03-19 15:35 iFat 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 1.如何关闭ARC功能 要想手动调用retain、release等方法 , 就必须关闭ARC功能 2.如何开启僵尸对象监控 默认情况下,Xcode是不会管僵尸对象的,使用一块被释放的内存也不会报错。为了方便调试,应该开启僵尸对象监控 阅读全文
posted @ 2017-03-19 15:31 iFat 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1.僵尸对象 已经被销毁的对象(不能再使用的对象) 2.野指针 指向僵尸对象(不可用内存)的指针 给野指针发消息会报EXC_BAD_ACCESS错误 3.空指针 没有指向存储空间的指针(里面存的是nil, 也就是0) 给空指针发消息是没有任何反应的 为了避免野指针错误的常见办法 在对象被销毁之后, 阅读全文
posted @ 2017-03-19 14:50 iFat 阅读(112) 评论(0) 推荐(0) 编辑
摘要: dealloc方法基本概念 当一个对象的引用计数器值为0时,这个对象即将被销毁,其占用的内存被系统回收 对象即将被销毁时系统会自动给对象发送一条dealloc消息 (因此, 从dealloc方法有没有被调用,就可以判断出对象是否被销毁) dealloc方法的重写 一般会重写dealloc方法,在这里 阅读全文
posted @ 2017-03-19 14:37 iFat 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1.什么是引用计数器 系统是如何判断什么时候需要回收一个对象所占用的内存? 根据对象的引用计数器 什么是引用计数器 每个OC对象都有自己的引用计数器 它是一个整数 从字面上, 可以理解为”对象被引用的次数” 也可以理解为: 它表示有多少人正在用这个对象 系统是如何判断什么时候需要回收一个对象所占用的 阅读全文
posted @ 2017-03-19 14:34 iFat 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1.内存管理的重要性 移动设备的内存极其有限,每个app所能占用的内存是有限制的 下列行为都会增加一个app的内存占用 创建一个OC对象 定义一个变量 调用一个函数或者方法 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等 如 阅读全文
posted @ 2017-03-19 14:26 iFat 阅读(125) 评论(0) 推荐(0) 编辑