本帖最后由 hengdafei 于 2014-03-20 13:32:10 编辑

解决方案 »

  1.   

    使用uitableview可以,但你需要定义多个不同cell. 数据要被组合成NSArray 来提供。
    上面带左右滑动图片的位置,可以封装成一个控件。
      

  2.   

    非常感谢。另外如果没有图片的话,我的理解是,相当于将图片的那个cell删除了,下方的cell自动向上移动,这样理解对吗?
      

  3.   

    这主要取决于你计算得到的cell的高度。我们知道UItableview 的每一行高度的显示,会调用
     -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath :(NSIndexPath *)indexPath
    来得到返回的cell的高度。如果都是一样的高度很好处理,统一返回值就可以了,像上图这样的就需要计算得到了。
    那么这里就涉及到一个动态修改cell高度的问题。这个问题也好解决,你只需要在你的自定义cell中能精确计算出当前cell 的高度,并能被外部访问。这样你就可以在
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    中得到这个自定义cell返回的高度,然后根据得到的这个高度重置cell  的frame但在取cell高度时你就可以这样写了- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath :(NSIndexPath *)indexPath {
           UITableViewCell *cell =[self tableView:tableView cellForRowAtIndexPath:indexPath];
           return cell.frame.size.height;
    }