斯坦福大学-IOS7应用开发总结

Lecture 4

1. 如果某个文本内容的字体需要根据用户的设置来调整大小的话,我们可以选用如下方法来设置该文本的字体:

[UIFont preferredFontForTextStyle:UIFontTextStyleBody];
//而不是如下固定的使用系统字体
[UIFont systemFontOfSize:12];

2. 使用UIFontDescriptor类来为现有字体添加额外的属性:

UIFont *bodyFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
UIFontDescriptor *existingDescriptor = [bodyFont fontDescriptor];
UIFontDescriptorSymbolicTraits traits = existingDescriptor.symbolicTraits;
traits |= UIFontDescriptorTraitBold;
UIFontDescriptor *newDescriptor = [existingDescriptor fontDescriptorWithSymbolicTraits:traits];
UIFont *boldBodyFont = [UIFont fontWithDescriptor:newDescriptor size:0];//0为任意大小

3. 通过NSMutableAttributedString类给文本添加样式:

UIColor *yellow = [UIColor yellowColor];
UIColor *transparentYellow = [yellow colorWithAlphaComponent:0.3];
 @{ NSFontAttributeName :
      [UIFont preferredFontWithTextStyle:UIFontTextStyleHeadline]
   NSForegroundColorAttributeName : [UIColor greenColor],
   NSStrokeWidthAttributeName : @-5,
   NSStrokeColorAttributeName : [UIColor redColor],
   NSUnderlineStyleAttributeName : @(NSUnderlineStyleNone),
   NSBackgroundColorAttributeName : transparentYellow }
// UIButton’s - (void)setAttributedTitle:(NSAttributedString *)title forState:...;
// UILabel’s @property (nonatomic, strong) NSAttributedString *attributedText;
// UITextView’s @property (nonatomic, readonly) NSTextStorage *textStorage;

Lecture 5

1.View Controller lifeCycle

//在控制器初始化完成并且outlet被设置后调用- (void)viewDidLoad
{
[super viewDidLoad]; // always let super have a chance in lifecycle methods
// do some setup of my MVC
}//此方法需要注意的是在来到这个方法时,视图的大小还没有确定,即view的frame还是未知的,因此不要在此方法里面做一些初始化size的操作。
// 在视图即将显示在屏幕上时调用
- (void)viewWillAppear:(BOOL)animated;
// 注意:此方法随着视图的显示与隐藏会调用多次,而视图只loaded一次,因为不要在这里面做太多事情,如果是会经常变化的操作,可以在此方法中。
// 在视图即将消失时调用
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
// 一般在此方法中做一些代码清理工作,释放内存
// 在view的frame被改变或其subviews改变的任务时候都会被调用
- (void)view{Will,Did}LayoutSubviews;
// 一般设置视图或子视图的frame操作都在此方法中进行
// 当使用storyboard创建视图控制器时,在outlet被设置之前会调用此方法
- (void)awakeFromNib{}
// 注意的是,如果视图控制器是在storyboard创建,将不会再调用默认的初始化方法,所以一些初始化的操作应该放在此方法中来执行。

Lecture 8

1. Dynamic Animation

创建动态动画:重力、碰撞。步骤:

a. 创建一个UIDynamicAnimator对象

b. 添加一个行为对象UIDynamicBehaviors(一般是其子类:重力gravity、碰撞collisions、吸附attachment等)

c. 添加一个UIDynamicItems(一般是UIViews)到上面的行为对象中

如:

UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:aView];
UIGravityBehavior *gravity = [[UIGravityBehavior alloc] init]; [animator addBehavior:gravity];
UICollisionBehavior *collider = [[UICollisionBehavior alloc] init]; [animator addBehavior:collider];
id <UIDynamicItem> item1 = ...;
id <UIDynamicItem> item2 = ...;
[gravity addItem:item1];
[collider addItem:item1];
[gravity addItem:item2];

任务对象都可以作为UIDynamicItem,前提是需要实现<UIDynamicItem>协议。UIView默认实现了此协议。

其中,我们也可以创建自定义的UIDynamicBehavior对象(它是所有行为的父类),在初始化方法中添加想要添加的行为(可以多个),这样就能实现将多个子行为动画的封装。通过下面的方法可以添加子行为:

- (void)addChildBehavior:(UIDynamicBehavior *)behavior;

当行为被执行时,会调用一个名为actoin的block方法。默认是没有实现的,如果我们要在此过程做些什么的话,可以实现该block。

@property (copy) void (^action)(void);
时间: 2025-01-05 06:07:40

斯坦福大学-IOS7应用开发总结的相关文章

2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

2011年冬季斯坦福大学公开课 iOS应用开发教程是个很经典的教程,这个老头讲的很给力.做笔记总结. 第一课名称: MVC and Introduction to Objective-C 这课的主要内容有: iOS的概述  -什么是iOS MVC - 面向对象的概念 Objective-C-介绍下语言的概念 iOS包括四层 内核 内核是mach 4.x BSD UNIX内核 mac OS  10操作系统,是个多任务的UNIX内核,在这层上提供了网络,socket ,安全机制,文件系统,大部分这些

斯坦福大学 iOS 开发公开课总结

 斯坦福大学 iOS 开发公开课总结 前言 iPhone 开发相关的教程中最有名的,当数斯坦福大学发布的 “iPhone 开发公开课 “ 了.此公开课在以前叫做<iPhone 开发教程>,今年由于平板电脑的流行,所以也加入了 ipad 开发相关的课程.在 网易公开课 上,有 该教程 的 2010 年录象,并且前面 15 集带中文字幕文件,非常适合初学者学习. 在这里顺便说一下,网易公开课上的 28 集其实并不需要全部看完.真正的课程只有前面 12 集.后面的课程都是请一些业界的名人讲他们成功的

斯坦福大学公开课:iOS 7应用开发 笔记

2015-07-06 第一讲   课务.iOS概述 -------------------------------------------------- 开始学习斯坦福大学公开课:iOS 7应用开发留下笔记

IOS学习之斯坦福大学IOS开发课程笔记(第六课)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/28398697 作者:小马 这节课主要讲述多个MVC是如何协同工作的.到目前为止,所有的课程都只是涉及到一个视图.从这节课开始,将会持到多视图应用的例子. 多视图开发这里用navigationController举例子.这个也是比较常用的.如上图所示,一个 navigation Controller(MVC)会指向一个rootViewController(另一个MVC),这个是第一

斯坦福大学IOS开发课程笔记(第七课第二部分)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/32163347 作者:小马 本篇是demo演示,程序其实就是上节课的心理学家那个demo, 不过在这个demo的基础上,把它作成一个通用版,可以自动识别当前运行的设备是iphone还是ipad,然后有不同的显示效果.所以,还是打开原来的Psychologist工程,在开始之前,我会用第五课讲的自动布局知识,让视图能在横屏模式下也可以正常显示.这一部分不细讲,参考第五课. 下面就可以

斯坦福大学IOS开发课程笔记(第八课)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/37370159 作者:小马 这节课讲视图的生命周期,网络视图,图像视图以及 滚动视图这些概念以及相关的demo演示.前两个概念比较简单,看一看就明白,我这里只是写图像视图以及 滚动视图的课程笔记. UIImageView用来显示图片.在下面的代码示例中,会有详细的步骤说明,有时候一些简单的应用,可以直接通过xcode设置,甚至不需要写代码. 这幅图向我们展示了scroll view

斯坦福大学iOS开发作业

今晚把斯坦福大学iOS开发视频的第二课看完了,同时把教授布置的作业也顺手做了下. 教授布置的作业是:在已有的纸牌游戏APP程序基础上拓展,使每次翻牌时出现随机的花色. 其实这个很简单,就是把教授上课写好的类进行实例化,同时获取纸牌的具体内容,即contents属性. 下面我就把做完的APP和APP类结构的图贴上来.          APP运行图:           that's all. Thank you!! 斯坦福大学iOS开发作业

斯坦福大学Andrew Ng教授主讲的《机器学习》公开课观后感

课程设置和内容 视频课程分为20集,每集72-85分钟.实体课程大概一周2次,中间还穿插助教上的习题课,大概一个学期的课程. 内容涉及四大部分,分别是:监督学习(2-8集).学习理论(9集-11集).无监督学习(12-15集).强化学习(16-20集).监督学习和无监督学习,基本上是机器学习的二分法:强化学习位于两者之间:而学习理论则从总体上介绍了如何选择.使用机器学习来解决实际问题,以及调试(比如:误差分析.销蚀分析).调优(比如:模型选择.特征选择)的各种方法和要注意的事项(比如,避免过早优

苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲

苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲 摘要:这是苹果公司CEO乔布斯2005年在斯坦福大学毕业典礼上的演讲,大学途中退学,创业,被解雇,东山再起,死亡威胁,这些他都一一经历了.经营自己与众不同的人生要从了解别人的经历开始.以下是英文原版以及翻译的版本:Tag: 英语 演讲 This is the text of the Commencement address by Steve Jobs, CEO of Apple Computer and of Pixar Animation St