您的位置:首页 > 移动开发 > IOS开发

iOS开发 - 第05篇 - 项目 - 06 - 首页

2016-08-10 13:50 387 查看

1、计算配图的frame

1> 在HWStatus中添加@property(nonatomic, strong) NSArray *pic_urls;

注:新浪返回pic_urls是一个字典数组,用字典可以为以后扩充更多属性,而不仅仅是一个图片url数组!!!



2> 由于是字典,因此最好提供一个HWPhoto模型,将字典转模型(暂时就一个属性)

/** 缩略图地址 */

@property(nonatomic, copy) NSString *thumbnail_pic;

 

注:希望将HWStatus中的NSArray *pic_urls中放HWPhoto模型,应该重写MJExtension中的objectClassInArray方法,则在字典转模型时会自动转!!!



3> 计算配图位置,暂时只用一张配图

1. 在HWStatusFrame的setStatus:方法中



2.在HWStatusCell的setStatusFrame:方法中



2、父子控制器(补充) --- 重要



在控制器切换一节中,为将一个控制器的View添加到另一个控制器的View中,为防止控制器释放,其对应的View还存在,出现危险情况,添加了一个强引用属性来引用对应控制器,防止控制器销毁,并在控制器切换时,仅仅只是移除原先的View,再添加其他控制器的View,这样做还是不严谨的。

应该将添加进来的控制器作为子控制器!!!



也即:当两个控制器的View互为父子关系时,那么这两个控制器也一定要为父子关系,这样可以避免很多不必要的麻烦,比如不需要再定义一个属性强引用子控制器,而且对于父控制器的一些事件有时也会自动传递到字控制器,如屏幕旋转,而如果仅仅是添加了一个控制器的View,则父控制器的事件不会自动传递到子控制器!!!

3、添加转发微博控件

1>在HWStatusCell中添加转发微博控件



2>在initWithStyle:方法中初始化装法微博控件



注:转发微博背景颜色

3> 在HWStatusFrame中添加相应控件的frame属性

4> HWStatus中添加转发微博属性

注:转发微博本身也是一条微博,仍然是HWStatus!!!

/** 被转发的原微博信息字段,当该微博为转发微博时返回 */

@property(nonatomic, strong) HWStatus *retweeted_status;

4、计算转发微博控件frame

1>在HWStatusFrame中添加转发微博控件frame



2>先在HWStatusCell的setStatusFrame:方法中写好被转发微博frame



3> 在HWStatusFrame的setStatus:方法中计算控件frame



5、添加cell工具条

基本步骤与前面一致,暂时添加一个红色UIView表示

1> 添加控件



2>计算frame



3> 在cell中设置frame

6、调整cell之间的间距



思路:增加cell高度,再将cell的背景色设置为clearColor,同时原创微博、转发微博、工具条均有背景色!

Cell:self.tableView.backgroundColor= HWColor(211, 211, 211);

原创微博:白色

转发微博:HWColor(247, 247,247);

7、调整最上面cell顶部间隙



方法一:设置tableView内边距

self.tableView.contentInset= UIEdgeInsetsMake(HWStatusCellMargin, 0, 0, 0);

注:对于有导航栏的情况,系统会默认加64,因此只需要再加一个间距即可,但是这样下拉刷新控件也会向下移!!!

方法二:让所有cell的y值都加上间距,重写cell的setFrame:方法!!!



方法三:在调整cell间距的时候是将每个cell的下面增加一个间距,改为向每个cell的上面增加一个间距即可,也可以达到同样的效果,而且只需要修改每个cell中原创微博整体View的y值即可,而且tableView最下面由于有一个上拉刷新控件,没有间距也没有关系

CGFloatoriginalY = HWStatusCellMargin;即可

8、取消点击cell选中状态颜色



9、封装工具条

注:每个cell最下面的工具条都是独立的,不需要根据cell的内容来计算其frame,因此可以自定义一个工具条









10、工具条数字

1> HWStatus中添加三个属性

/** int   转发数*/

@property(nonatomic, assign) int reposts_count;

/** int   评论数*/

@property(nonatomic, assign) int comments_count;

/** int   表态数*/

@property(nonatomic, assign) int attitudes_count;

 

2>HWStatusToolbar添加HWStatus属性,重写setter方法,将工具栏中三个按钮的文字数值赋值



11、日期转换

注:由于在计算日期Label的frame以及设置日期Label的内容的时候都需要获取微博对象内的created_at属性,因此可以重写created_at的getter方法,进行日期转换!!!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息