【问题标题】:The first UITableViewCell's accessary arrow is not showing第一个 UITableViewCell 附件箭头未显示
【发布时间】:2012-04-08 08:18:42
【问题描述】:

这是我正在努力的代码,第一个表格单元格不显示辅助箭头,但其他表格单元格工作正常...

下面是表格单元格1的代码,其他单元格也是自定义的,但工作正常。

- (void) initialization
{
    labelTitle = [[UILabel alloc] initWithFrame:CGRectZero];
    labelTitle.font = [UIFont fontForMoreLikeResultTitle];
    labelTitle.textColor = [UIColor blackColor];
    labelTitle.numberOfLines = 1;
    labelTitle.lineBreakMode = UILineBreakModeTailTruncation;
    labelTitle.backgroundColor = [UIColor clearColor];

    labelFulLAddress = [[UILabel alloc] initWithFrame:CGRectZero];
    labelFulLAddress.font =  [UIFont fontForMoreLikeResultDescription];
    labelFulLAddress.textColor = [UIColor blackColor];
    labelFulLAddress.numberOfLines = 1;
    labelFulLAddress.lineBreakMode = UILineBreakModeTailTruncation;
    labelFulLAddress.backgroundColor = [UIColor clearColor];

    [[self contentView] addSubview:labelTitle];
    [[self contentView] addSubview:labelFulLAddress];
}

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self)
    {
        // Initialization code
        [self initialization];
    }
    return self;
}

- (void) layoutSubviews
{
    float xOffset = 20.0f;
    float yOffset = 10.0f;
    float currentUsedHeight = yOffset; 

    labelTitle.text = documentTitle;
    labelTitle.frame = CGRectMake(xOffset, currentUsedHeight, 
                                  320.0f - 2 * xOffset, 60.0f);
    [labelTitle sizeToFitHeight];
    [labelTitle sizeToFitWidth];

    labelFulLAddress.text = @"99999 Bellevue Way NE, Bellevue WA";
    currentUsedHeight += (yOffset + labelTitle.frame.size.height);
    labelFulLAddress.frame = CGRectMake(xOffset, currentUsedHeight, 320.0f - 2 * xOffset, 60.0f);
    [labelFulLAddress sizeToFitHeight];
    [labelFulLAddress sizeToFitWidth];
}

下面是视图控制器中的代码:

- (UITableViewCell *) createResultTableCell1:(UITableView *)tableView { 静态 NSString *CellIdentifier = @"FirstMoreLikeResultCell"; FirstResultTableCell *cell = (FristResultTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 如果(单元格 == 零) { 单元格 = [[MoreLikeTableCell1 alloc] initWithStyle:UITableViewCellStyleDefault 重用标识符:CellIdentifier]; cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } 单元格.documentTitle = self.documentTitle; 返回单元格; } - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell; if (indexPath.row == 0) { 单元格 = [self createResultTableCell1:tableView]; } 别的 { 单元格 = [self createResultTableCell2:tableView cellForRowAtIndexPath:indexPath]; } 返回单元格; }

【问题讨论】:

  • @MarkGranoff,非常感谢帮助我格式化我发布的混乱代码 :)
  • 没问题。把它放在
     标签之间。
  • 您是否输入了此代码?这段代码写得不是很好......理想情况下,你不应该将一个“return”放在“if”中,另一个放在外面。
  • 让我们看看你的 UITableViewCells 的代码。也许那里发生了什么?
  • @TommyG 是的,代码不干净,但我只是清理并更新了它。

标签: iphone objective-c ios uitableview


【解决方案1】:

在您的 overridden layoutSubviews 内致电 [super layoutSubviews]

【讨论】:

  • 上帝,你救了我!这正是我错过的!非常感谢!! ^____^
猜你喜欢
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2016-01-18
  • 2013-07-20
相关资源
最近更新 更多