【发布时间】:2013-08-03 09:44:48
【问题描述】:
您好,我想为类似论坛的视图实现一个很长的滚动视图,设计类似于此图像的东西
是否可以使用表格视图来实现这一点(考虑到单元格之间的边界不是很明确,并且某些视图与其他单元格重叠)或者我应该编写一个带有许多子视图的长滚动视图(内存管理?)? 谢谢
【问题讨论】:
-
简单使用 UITableView
标签: ios uitableview memory uiscrollview
您好,我想为类似论坛的视图实现一个很长的滚动视图,设计类似于此图像的东西
是否可以使用表格视图来实现这一点(考虑到单元格之间的边界不是很明确,并且某些视图与其他单元格重叠)或者我应该编写一个带有许多子视图的长滚动视图(内存管理?)? 谢谢
【问题讨论】:
标签: ios uitableview memory uiscrollview
使用UITableView,如果你在调整单元格大小的时候子类化UITableViewCell并使用layoutSubviews方法来调整子视图会更好。根据其中存在的内容更改单元格大小。
查看以下链接:
【讨论】:
您可以自定义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;
【讨论】:
一条建议:偷懒!
如果你想在一个滚动视图中显示很多视图,不要全部加载它们。最佳实践是使用UITableView。如果在屏幕上绘制之前知道每个单元格的高度,则可以实现此方法
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
在您的 Tableview 数据源中。 如果要使用 UIScrollView,请在用户滚动时按需添加子视图。最好的方法是实现委托方法:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
【讨论】: