UITab上的UILabel无法正确显示

时间:2013-02-07 12:16:01

标签: ios objective-c interface-builder

我在界面构建器中使用约束配置了接口。它的设置如下所示:http://imgur.com/a/xqa7D

渲染单元格时,右边标签不会出现(但剩余的空格):http://imgur.com/xwBSSMD

有问题的单元是自定义UITableViewCell子类:

#import <UIKit/UIKit.h>

@interface ProgressCell : UITableViewCell

@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@property (weak, nonatomic) IBOutlet UIProgressView *progressView;
@property (weak, nonatomic) IBOutlet UILabel *detailTextLabel;

@end

班上没有其他逻辑。

表视图单元格是从我在故事板上设置的标识符实例化的:

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

    Object *room = [self.rooms objectAtIndex:indexPath.row];
    cell.textLabel.text = room.name;
    cell.progressView.progress = 1.0f - ((float)room.avail)/room.total;
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%d/%d", room.avail, room.total];

    return cell;
}

如果我在函数末尾设置断点并执行po [[cell detailTextLabel] text],则文本设置正确。标签没有隐藏。

我完全不知道可能的原因。什么可能触发这种行为?

我尝试过的其他事情:

  • 将属性重命名为detailTextLabel以外的其他内容(如果存在可能的冲突)不起作用
  • 如果我添加第三个带有默认文字的标签,则会正确显示
  • 如果我添加第三个标签并将IB中的出口连接到未出现的那个,则会出现问题标签的默认文本,但隐藏第三个标签

编辑:

如果我记录相关帧的最终位置,它位于{{0, 44}, {0, 0}}

2 个答案:

答案 0 :(得分:0)

你可以尝试找出发生的事情:

  • 在标签上加上红色背景。

  • 使用标签的框架和单元格的contentView框架执行NSLog

  • 在其上放置硬编码文字。 cell.detailTextLabel.text = @"Hi";

答案 1 :(得分:0)

问题可能是故事板自动布局的限制。检查标签约束,使其在表格视图中调整单元格时可见