分层 UITableview
Posted
技术标签:
【中文标题】分层 UITableview【英文标题】:Hierarchical UITableview 【发布时间】:2011-03-23 09:39:17 【问题描述】:在我的第一个视图中,我有一个 UITableView
有 5 条记录。在UITableView
中,单元格包含两个不同的组件。一个UILabel
是文本,另一个UILabel
显示该单元格的值。
在选择此UITableViewCell
时,用户将导航到另一个视图,在该视图中我提供了一个选择器控制器,用于更改所选行的表视图中的第二个标签的值。我在-viewWillAppear
上重新加载了UITableView
数据,但这与标签上的文本重叠了很多次。
谁能给我分层表格视图的相关示例,其中UItableViewCell
的右侧部分取决于从下一个视图中选择的选择器。
【问题讨论】:
我在 cellForRowAtIndexPath 中使用了这个。我在 UITableViewcell 中添加了这些动态标签。 CGRect lblFrame = CGRectMake(10, 5, 140, 30); UILabel *lblField =[[UILabel alloc]initWithFrame:lblFrame]; lblField.font = [UIFont systemFontOfSize:[UIFont labelFontSize]]; CGRect firstInput_Frame =CGRectMake(300, 5, 200, 30); UILabel *lblResult = [[UILabel alloc]initWithFrame:firstInput_Frame]; lblResult.font = [UIFont systemFontOfSize:[UIFont labelFontSize]]; //[txtField setBorderStyle:UITextBorderStyleNone]; lblField.text=@" "; lblResult.text = @" " 【参考方案1】:我认为您每次重新加载表格时都会在 cell.contentView 上添加标签,但不会删除以前的标签。这就是重叠发生的原因。
尝试删除标签
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
for (UIView * view in cell.contentView.subviews)
[view removeFromSuperview];
view = nil;
// add your labels
【讨论】:
谢谢。有效。我想知道是否有任何其他最佳解决方案。你愿意我对我的问题做更多解释吗? 可能来自这个门户的一些大人物可能会给我们一些最佳解决方案。据我所知,我们不是每次都创建新的单元格,而是将可重用的单元格出列,这些单元格已经创建并添加了一些视图,所以在使用这样的单元格之前,我更喜欢清理单元格的视图然后自定义它。当我这样做时,我会释放添加的组件……例如。 [cell.contentView addSubView:myLabel]; [myLabel 发布];以免泄漏。以上是关于分层 UITableview的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用 tableview 特定行但特定行包含 uibutton。按钮必须访问