第一步 在view did load 里面
初始化解析的类,这个类通常带一个URL 参数,可能还有一个扩展参数,例如查询参数, 用block作为参数进行回调显示成功还是失败,如果成功则返回已经解析好的结果,如果失败则返回失败的原因
下面是一个例子
其中[self setUpParser] 是一个网络请求的类 如下
只是简单的做了初始化,[self refreshData]用这个已经初始化的类来从服务器下载数据并返回结果,当然解析好之后在返回更好, 如下
把获得的数据给table view 的data source 赋值并在主线程reload table view,如下
通常在从网络获取数据的时候都会有一个view来提示用户正在下载数据,通常是UIActivityIndicatorView或着自定义的view,在这里用一个开源的库MBProgressHUD 来提示用户正在从网络下载数据
如果有多个cell,有时候需要根据Item 中的某个参数来判断去显示那个cell,通常在cell for row zt indexPath里面判断,从而返回不同的cell,然后就是用Item的属性配置cell,配置cell时要注意如果有图片需要先清除原有的图片,然后设定新的图片的URL,如
另外还要注意配置cell的方法最好单独一个方法来写
第二步 让 table view cell根据layout自动适应内容的高度
大多数情况下需要显示的内容可能不止一行,这就需要自动调整cell 的高度,通常做法是在table view heightForRowAtIndexPath方法中 计算cell的高度如
下面将列出计算在auto layout 的情况下计算cell高度的方法
这里生成了一个cell,并配置cell 然后用方法calculateHeightForConfiguredSizingCell:(UITableViewCell*)sizingCell计算cell的高度并返回
这里把传进来的cell,设定他的宽度为table view frame的宽度,高度为cell的bounds的高度
然后方法[sizingCellsetNeedsLayout]使当前的cell的layout不可用,然后调用[sizingCelllayoutIfNeeded] 强迫cell立即更新 layout
然后再用方法[sizingCell.contentViewsystemLayoutSizeFittingSize:UILayoutFittingCompressedSize]获取layout重新计算出来的size
给这个size的高度加上1point 然后返回就是table view cell的最终高度
第三步 加搜索栏
大多数情况下table view都会需要一个搜索栏来快速的查找数据,搜索栏出了searchbar之外还可 以添加一个UITextField来获取搜索的字串
这里将用UITextField,仅仅在text filed return的时候调用[self refreshData]; 更新table view 的现实数据