如何避免过度添加到细胞中的标签

时间:2012-01-31 06:10:08

标签: iphone objective-c uitableview

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) 
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
    }

    timeLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 33)];
    dataLabel = [[UILabel alloc]initWithFrame:CGRectMake(105, 0, 320, 33)];
    timeLabel.backgroundColor = [UIColor clearColor];
    dataLabel.backgroundColor = [UIColor clearColor];
    dataLabel.textColor = [UIColor whiteColor];
    timeLabel.textColor = [UIColor whiteColor];
    [cell.contentView addSubview:timeLabel];
    [cell.contentView addSubview:dataLabel];

    if(indexPath.row == 0)
    {
        if([storedDataArray count]>0)
        {
            timeLabel.text = currenttime;
            dataLabel.text = textView1.text;
        }
        return cell; //returns empty cell if there is no data in the data base
    }
    if(indexPath.row == 1)
    {
            timeLabel.text = currenttime;
            dataLabel.text = textView2.text;
        return cell;
    }

我有一个表格视图 - 我想在左侧显示我的textlabel,就在detailTextlabel旁边。

  • 实际上当我使用textLabel.text,DetailTextLabel.Text和alignments时, 他们显示但不是我想要的位置。
  • 所以我试图使用自己的标签..
  • 但是他们会被覆盖。
  • 因为我们没有(不可能)改变位置&单元格textlabel,detailTextLabel的框架大小,我添加了2个标签,其框架大小是我想要的。

    • 但是当我们在文本视图中输入文本并返回到表视图时......标签会被覆盖..

该怎么做..

  • 是否有任何替代方法来修复我的文字标签的框架尺寸
  • 或避免覆盖我们的标签

2 个答案:

答案 0 :(得分:1)

请改用自定义UITableViewCell。您可以使用自定义tabe单元格轻松对齐和放置标签。

此链接会有所帮助。 http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW1

查看文档中的自定义部分。

答案 1 :(得分:0)

使用此代码,它将完美地运作

 if (cell== nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MenuNameCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
    NSLog(@"---------new cell agin");   
}
   else
{
    NSArray *arrayView = [cell.contentView subviews];
    for (UIView *vTemp in arrayView)
    {
        [vTemp removeFromSuperview];
    }

    NSLog(@"---No New Cell hiiii");

    // Setting Tag To UIButton
    _checkButton = (UIButton *)[cell.contentView viewWithTag:indexPath.row];
    _cancelButton = (UIButton *)[cell.contentView viewWithTag:indexPath.row];
}

仅添加其他部分