0323
1.IBAction:
1> 能保证方法可以连线
2> 相当于void
2.IBOutlet:
1> 能保证属性可以连线
3.常见错误
setValue:forUndefinedKey:]:this class is not key value coding
错误原因是:连线出问题了
4.Xcode5开始的一些建议
把用于连线的一些方法和属性声明在.m文件的类扩展中
5.frame\center\bounds
1> frame:能修改位置和尺寸
2> center:能修改位置
3> bounds:能修改尺寸(x\y一般都是0)
0324
1.NSBundle
1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹
2> 利用mainBundle就可以访问软件资源包中的任何资源
3> 模拟器应用程序的安装路径
/Users/aplle/资源库/ApplicationSupport/iPhone Simulator/7.1/Applications
2.UIImageView和UIButton
1> 使用场合
* UIImageView: 如果仅仅是显示图片,不需要监听图片的点击
* UIButton: 既要显示图片,又要监听图片的点击
2> 相同:能显示图片
3> 不同点
* UIButton能处理点击事件,UIImageView不能处理点击事件
* UIButton既能显示图片,又能显示文字
* UIButton能同时显示两张图片
* UIButton继承自UIControl,因此默认就能处理事件
* UIImageView继承自UIView,因此默认就不能处理事件
3.Xcode文档安装路径
/Applications/Xcode.app/Contents/Developer/Documentation/DocSets
4.Xcode模拟器安装路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
0326
备课笔记:
1.纯代码方式实现九宫格
* 一个格子一个格子添加
* 使用for循环添加
2.字典转模型
* 什么是模型
* 好处分析
* 将字典转换为模型
* 模型提供字典转模型的构造方法
3.使用xib文件
* 用来描述九宫格
* 用来描述中间的提示信息
4.封装
* 纯代码的封装
*xib的封装
课堂笔记:
1.Xcode自带头文件的路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/System/Library/Frameworks/UIKit.framework/Headers
2.修改了系统自带头文件后,Xcode会报错
解决方案:删掉下面文件夹的缓存即可(aplle是电脑的用户名)
/Users/aplle/资源库/Developer/Xcode/DerivedData
或者
/Users/aplle/Library/Developer/Xcode/DerivedData
3.使用xib封装一个自定义view的步骤
1> 新建一个继承UIView的自定义view,假设类名叫做(MJAppView)
2> 新建一个MJAppView.xib文件来描述MJAppView内部的结构
3> 修改UIView的类型为MJAppView真实类型
4> 将内部的子控件跟MJAppView进行属性连线
5> MJAppView提供一个模型属性
6> 重写模型属性的set方法,因为在set方法中可以拿到外界传递的模型数据
7> 把模型数据拆开,分别设置数据到对应的子控件中
8> 补充:提供一个创建MJAppView的类方法,将读取xib文件的代码屏蔽起来
0327
1.添加图片资源(暂时认为@2x跟非@2x代表同一张图片)
2.搭建UI界面
* 文本标签
* 4个按钮
* 中间的图片
3.设置状态栏样式
4.监听下一题按钮的点击
5.延迟加载数据
* 加载plist
* 字典转模型
* KVC的引入
6.切换下一题的序号、图片、标题,下一题按钮的可用性
7.默认显示第1条题目
8.显示大图
* 监听中间图片点击
* 添加遮盖
* 移动图片(注意头像图片的层级顺序)
* 监听“大图按钮”
9.展示答案的个数
10.展示待选答案
11.答案处理
12.提示功能
13.Icon和Launch、@2x
0329
1.PPT介绍什么是UIScrollView
2.新建项目“大图片展示”
* 尽量用storyboard,减少代码
* 设置contentSize属性
* 取消autolayout
* 说明frame.size和contentSize的区别
3.介绍UIScrollView的代理
* 看PPT
* 演示3个代理方法的使用
// 用户开始拖拽时调用
- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView;
// 滚动到某个位置时调用
- (void)scrollViewDidScroll:(UIScrollView*)scrollView;
// 用户结束拖拽时调用
- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate;
4.演示scrollView的常见属性
* contentOffset
* contentInset
... ...
5.新建项目“喜马拉雅”
6.新建项目“图片缩放”
* PPT
* 代码演示
7.新建项目“图片轮播器”
* 分页展示图片
* UIPageControl的使用
* NSTimer的使用
(虽然用storyboard搭建界面,但是也要说清楚对应的代码操作方式)
0330
1.tableView简介
* PPT简介
2.汽车品牌(简单)
* 写死数据
1> 德系品牌:宝马、奔驰
2> 日系品牌:本田、丰田
* 头部和尾部标题
* 扩展新的一行
1> 德系品牌:奥迪
2> 日系品牌:马自达
* 扩展新的一组
欧系其他:兰博基尼、劳斯莱斯、法拉第
* 引入模型,手动创建模型数据
* 从plist中读取完整的模型数据
3.LOL英雄
* 加载模型数据
* 展示cell的几个子控件
* 展示accessoryType和accessoryView
* 监听点击
4.性能优化(以“LOL英雄”为例子)
5.汽车品牌(带图、按照拼音排序)
* 手动创建模型数据
* 加载模型数据
* 显示汽车内容
* 索引标题
0401
1.通过xib自定义cell
* 添加tableView
* 加载团购数据
* 新建xib,获取子控件
* 封装
* 最后引入headerView和footerView(插入广告,加载更多)
2.通过代码自定义cell
* 引入UITableViewController
* 加载模型数据MJStatus,用自带的cell展示基本数据
* 新建一个MJStatusCell,封装模型数据
* 在init方法中添加4个子控件
* 在set方法中给子控件设置数据
* 在set方法中给子控件计算frame
* 说明cell的高度无法计算
* 设计MJStatusFrame
* 建立MJStatus、MJStatusFrame、MJStatusCell的关系(提醒属性名不能叫做frame)
* 性能优化(存储MJStatusFrame数据,不存储MJStatus数据)