第五课:

  1、UITextView

@property (nonatomic, readonly) NSTextStorage *textStorage;//注意为只读属性,因此不能直接更改内容,NSTextStorage为NSMutableAttributeString的子类,因此可以更改字符串属性内容(而非字符串)
//例如,添加属性
[self.body.textStorage addAttribute:NSForegroundColorAttributeName
value:sender.backgroundColor
range:self.body.selectedRange]; @property (nonatomic, strong) UIFont *font;
//例如添加字体
self.body.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
self.headLine.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline]; //文本布局功能,如图文混排等
@property (readonly) NSTextContainer *textContainer;
@property (readonly) NSLayoutManager *layoutManager;

  2、View Controller Lifecycle

- (instancetype)initWithNibName:(NSString *)name bundle:(NSBundle *)bundle;//非storyboard加载方式,指定初始化器
- (void)awakeFromNib;//从storyboard中加载UI时调用,此时未设置输出口 //设置输出口 - (void)viewDidLoad;//可以放置控制器初始化代码(一次性),如init。不可放置与几何相关的代码,此时控制器中的UI边界未确定 //确定几何布局
//当视图frame发生变化时就会被调用,此处适合添加与几何相关的代码
- (void)viewWillLayoutSubviews;
- (void)viewDidLayoutSubviews;
//其他关于屏幕旋转等API... - (void)viewWillAppear:(BOOL)animated;//生命周期中可能会被反复调用,因此不能放置一次性初始化内容
- (void)viewDidAppear:(BOOL)animated;
- (void)viewWillDisappear:(BOOL)animated;//可以进行一些当前数据保存工作
- (void)viewDidDisappear:(BOOL)animated; - (void)didReceiveMemoryWarning;//系统在内存不足时调用

  3、NSNotification

(本节课只涉及到如何收听通知)

[NSNotificationCenter defaultCenter];//获取defaultCenter

//添加观察者
- (void)addObserver:(id)observer //接收通知的对象
selector:(SEL)methodToInvokeIfSomethingHappens
name:(NSString *)name //广播名
object:(id)sender; //监听的广播对象,nil指监听所有对象 //接收到通知后调用方法
- (void)methodToInvokeIfSomethingHappens:(NSNotification *)notification
{
notification.name // the name passed above
notification.object //发送广播的对象
notification.userInfo // notification-specific information about what happened(取决于发送者)
} //结束收听通知,通常放于视图从界面消失时
[center removeObserver:self];
[center removeObserver:self name:UIContentSizeCategoryDidChangeNotification object:nil];

通知实例(系统设置字体改变)

//视图出现在屏幕上注册通知
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferredFontChanged:) name:UIContentSizeCategoryDidChangeNotification object:nil];
} //通知出现时调用方法
- (void)preferredFontChanged:(NSNotification *)notification
{
[self usePreferredFonts];
} //重新设置字体
- (void)usePreferredFonts
{
self.body.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
self.headLine.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
} //视图离开界面是移除通知
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIContentSizeCategoryDidChangeNotification
object:nil];

  4、作业

    无

  课程示例Attributor源码:https://github.com/NSLogMeng/Stanford_iOS7_Study/commit/242826c2220afe978bc1d060c2dff19578a835c9

    

课程视频地址:网易公开课:http://open.163.com/movie/2014/1/L/H/M9H7S9F1H_M9H801GLH.html

       或者iTunes U搜索standford课程

(5/18)重学Standford_iOS7开发_视图控制器生命周期_课程笔记的更多相关文章

  1. (7/18)重学Standford_iOS7开发_视图、绘制、手势识别_课程笔记

    第七课: 1.View 一般来说,视图是一个构造块,代表屏幕上一块矩形区域,定义了一个坐标空间,并在其中绘制及添加触控事件等. ①视图的层级关系 一个视图只能有一个父视图,可以有多个子视图 - ( - ...

  2. (6/18)重学Standford_iOS7开发_控制器多态性、导航控制器、选项卡栏控制器_课程笔记

    终于有时间跟新了,两周时间复(yu)习(xi)了5门考试累觉不爱...... ------------------------------------------------------------- ...

  3. (1/18)重学Standford_iOS7开发_iOS概述_课程笔记

    写在前面:上次学习课程对iOS还是一知半解,由于缺乏实践,看公开课的视频有时不能很好地领会知识.带着问题去学习永远是最好的方法,接触一段时间iOS开发以后再来看斯坦福iOS公开课,又会有许多新的发现, ...

  4. (8/18)重学Standford_iOS7开发_协议、block、动画_课程笔记

    第八课: 1.协议 另一种安全处理id类型的方式如:id <MyProtocol> obj a.声明 //协议一般放于.h文件中或者在类的.h文件中 @protocol Foo <X ...

  5. (9/18)重学Standford_iOS7开发_动画、自动布局_课程笔记

    最近开始实习,没多少时间更新了=_= 第九课: 1.上节课demo:Dropit完整实现 https://github.com/NSLogMeng/Stanford_iOS7_Study/commit ...

  6. (4/18)重学Standford_iOS7开发_框架和带属性字符串_课程笔记

    第四课(干货课): (最近要复习考试,有点略跟不上节奏,这节课的内容还是比较重要的,仔细理解掌握对今后的编程会有很大影响) 本节课主要涉及到Foundation和UIKit框架,基本都是概念与API知 ...

  7. (3/18)重学Standford_iOS7开发_Objective-C_课程笔记

    第三课: 本节课主要是游戏实现的demo,因此我将把课程中简单的几个编程技巧提取出来,重点介绍如何自己实现作业中的要求. 纸牌游戏实现: ①游戏的进行是模型的一部分(理解什么是模型:Model = W ...

  8. (2/18)重学Standford_iOS7开发_Xcode_课程笔记

    第二课: 1.惰性初始化 -(ObjectType *)example { f(!_example) example =[[ObjectType alloc] init]; return _examp ...

  9. 玩转iOS开发 - 视图控制器生命周期

    视图控制器生命周期

随机推荐

  1. 常见排序算法(PHP实现)

    function InsertSort($arr){ $num = count($arr); for($i = 1; $i < $num; $i++){ $key = $arr[$i]; for ...

  2. PHP PhantomJs中文文档(翻译)

    介绍 PHP PhantomJS 是一个灵活的 PHP 库加载页面通过 PhantomJS 无头浏览器并将返回页面响应.这是方便于需要JavaScript的支持,同时还支持截屏测试网站.功能列表通过 ...

  3. TDirectory.Move移动或更名目录

    使用函数: System.IOUtils.TDirectory.Move 定义: class procedure Move(const SourceDirName, DestDirName: stri ...

  4. hadoop1中partition和combiner作用

    ---恢复内容开始--- 1.解析Partiton 把map任务的输出的中间结果按照key的范围进行划分成r份,r代表reduce任务的个数.hadoop默认有个类HashPartition实现分区, ...

  5. [转]iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

    参考:http://www.mamicode.com/info-detail-469709.html 一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能( ...

  6. 重复数据插入unique列时,锁加在哪?

    1.测试目的 当插入重复数据到有unique索引的表中时,采用何种加锁机制. 2.测试思路 利用10046确定是什么操作导致加锁阻塞了进程: dump锁定前最近一次操作的块结构来分析加锁机制. 3.测 ...

  7. asp.net学习资源汇总

    名称:快速入门地址:http://chs.gotdotnet.com/quickstart/描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序 ...

  8. tableView被Nav挡住了

    // 1. //    self.navigationController.navigationBar.translucent = NO; //    self.tabBarController.ta ...

  9. redis基本命令的演示:

    import redis r = redis.Redis(host='127.0.0.1', port=6379,db = 0) #查看匹配redis的数据 r.keys() #查看redis的大小 ...

  10. Hdu 2979 Expensive Drink

    Description There are some water, milk and wine in your kitchen. Your naughty little sister made som ...