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

1、日期判断


1> 将判断某个时间是否是今年、昨天、今天抽取到NSDate分类中,注意比较思路






2> 在created_at的getter方法中判断如下:




注:关于随着现实时间推移,cell中显示时间的改变问题,已经自动解决,因为是重写created_atgetter方法,每次滚动后,再次显示cell会重新get时间,进行判断后显示,但若是重写了created_atsetter方法则不会自动更新!!!


3> 设置日期颜色


2、来源


注:来源和时间不同,来源不需要刷新时间改变,只需要设置一次就够了,因此可以重写setter方法,截取所需字符串!!!




3、日期刷新后frame重新设置


注:关于cell中每个控件frame的计算只会计算一次,即在加载到最新微博的时候,进行字典转模型(新浪返回JSONAFN转字典数组,再手动转HWStatus,再转HWStatusFrame模型)计算一次,下次直接将HWStatusFrame设置给cellcell设置每个控件尺寸,但是由于时间会变化,因此显示时间的UILabel也需要重新设置,否则可能出现显示不全!!!

修改:在cell的setStatusFrame:方法中重新设置时间、来源(尺寸受时间影响)




注:关于字符串分类(计算文字尺寸)抽取,不要用类方法,直接用对象方法!




4、配图相册


4.1 自定义配图相册类


注:由于配图是作为一个整体,即可以存在原创微博中、又可以存在转发微博中,而且里面还可以存放不同数量的图片,以及图片的点击操作等,因此最好将其抽取出来

1> 自定义HWStatusPhotosView,继承自UIView

2>里面涉及的逻辑比较多,可能存在不同数量图片,因此先写外面,cell修改如下:




3> 计算frame中修改如下:




关键:photosSizeWithCount:方法


4.2 计算photosView尺寸




4.3 HWStatusPhotosView内部排列


1> HWStatusPhotosView添加@property(nonatomic, strong) NSArray *photos;

2>在cell的setStatusFrame:方法中传入配图数组(原创微博和转发微博)




3> 在setPhoto:方法中设置控件

注:cell的循环引用问题!!!




4> 在layoutSubviews:计算尺寸

1:应将计算相册尺寸photosSizeWithCount:封装到HWStatusPhotosView方法中(类方法),外界使用的时候只需要传入图片个数,返回一个相册尺寸!!!

2:对于4张图片,应该显示2x2相册

定义宏#defineHWStatusPhotoMaxCol(count) ((count==4)?2:3)






4.4 显示GIF标记


由于每一个图片可能都会有一个GIF标记,因此最好将每一个图片(包括GIF标记)再抽取出一个整体,封装成HWStatusPhotoView,再传入HWPhoto模型,

配图相册整体思路:一个HWPhoto模型对应一个HWStatusPhotoView,多个HWStatusPhotoView组成HWStatusPhotosView!!!

1>HWStatusPhotoView






2> HWStatusPhotosView






5、UIImageView的contentMode




6、头像


有认证的用户(企业、个人、微博达人等)会在头像右下角显示一个认证图片,而且头像在其他地方也会使用,比如个人中心,因此最好抽取出一个控件(放在Main/View中)

1>用户添加认证类型




2>HWIconView添加HWUser属性,重写setter方法






3> 在cell的setStatusFrame:方法中作相应修改


7、block的细节和本质






注:在微博项目中程序进入后台的代理方法中修改:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值