【问题标题】:Hierarchical UITableview分层 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 = @" "

标签: iphone objective-c ipad uitableview ios4


【解决方案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 发布];以免泄漏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多