iOS实现了长滚动视图的最佳实践

时间:2013-08-02 07:47:39

标签: ios uitableview memory uiscrollview

您好我会为类似论坛的视图实现一个非常长的滚动视图,设计类似于此图像的内容

是否可以用表格视图实现这一点(考虑到单元格之间没有非常明确的边界和一些与其他单元格重叠的视图)或者我应该编写一个包含许多子视图的长滚动视图(内存管理?)? 感谢

3 个答案:

答案 0 :(得分:10)

使用UITableView,如果你继承UITableViewCell并使用layoutSubviews方法在调整单元格大小时调整子视图会更好。根据其中的内容更改单元格大小。

请查看以下链接:

答案 1 :(得分:3)

一条建议:懒惰!
如果要在scrollView中显示大量视图,请不要全部加载它们。最佳做法是使用UITableView。如果您在屏幕上绘制每个单元格之前知道每个单元格的高度,则可以实现此方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Tableview数据源中的

。 如果要使用UIScrollView,请在用户滚动时按需添加子视图。最好的方法是实现委托方法:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

答案 2 :(得分:3)

您可以制作自定义UIView,然后您可以制作所需的所有内容,只需在cellForRowAtIndexPath中添加自定义视图

[cell.contentView addSubview:yourcustomview];

代码是

CV = [[CustomView alloc] initWithFrame:CGRectMake(0, 0, 320, heightofviewyouwant)];
CV.delegate = self;
cell.selectionStyle =  UITableViewCellAccessoryNone;
[CV setTitle:[[yourarray objectAtIndex:indexPath.row]objectForKey:@"yourkey"]]; 
CV.backgroundColor = [UIColor whiteColor];   
[cell.contentView addSubview:CV]; 

return cell;