
B.思路、步骤
1.Controller:UITableViewController
改变控制器继承自UITableViewController,storyboard中也同时使用新的TableViewController,其TableView作为启动入口。
2.View:代码自定义cell
使用代码组装每个cell,动态改变控件的位置、尺寸
cell含有一个WeiboFrame类型的成员属性用来保存数据、位置尺寸
3.Model:
(1)Weibo:数据模型
保存了每条微博的数据
(2)WeiboFrame:frame模型
保存了一个Weibo的成员属性,和每个控件的位置尺寸,还有这个cell的高度
C.实现点
1.使用UITableViewController作为控制器和UITableView为起始入口
内置了UITableView成员,默认代理和dataSource就是UITableViewController
self.view == self.tableView
—>使当前的controller继承UITableViewController,然后指定view的class, Xcode就会自动配置
(1)继承UITableViewController
1 // 2 // ViewController.h 3 // Weibo 4 // 5 // Created by hellovoidworld on 14/12/4. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 11 // 指定控制器继承自UITableViewController 12 @interface ViewController : UITableViewController 13 14 15 @end(2)在界面设计处删除原来的UIViewController (3)拖入一个新的UITableViewController
(4)配置class
(5)设置UITableViewController为Entry Point
(5)Xcode会自动配置dataSource和delegate
2.自定义cell(cell内的子控件不固定)
不使用xib,使用代码
1 // 使用自带方法计算一段文字占用的size
2 - (CGSize) calTextSizeWithText:(NSString *) text font:(UIFont *) font maxSize:(CGSize) maxSize {
3 NSDictionary *attrs = @{NSFontAttributeName : font};
4
5 return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
6 }
b.设置自动换行; textView.numberOfLines = 0;// 设置自动换行 (6)如带有配图,设置配图的尺寸,计算位置 (7)计算cell的高度,有配图的从配图算起,没有配图就从博文算起