UItableViewCell的大小不合适

时间:2013-05-13 21:42:28

标签: ios objective-c uitableview

创建.xib:

enter image description here

设置课程:

enter image description here

这就是它的表现:

enter image description here

以下是我加载单元格的方法:

@implementation FieldInfoTableViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    UINib *cellNib = [UINib nibWithNibName:@"FieldInfoCell" bundle:nil];

    [self.tableView registerNib:cellNib forCellReuseIdentifier:FieldInfoCellIndentifier];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0) {
        FieldInfoCell *fieldCell = [tableView dequeueReusableCellWithIdentifier:FieldInfoCellIndentifier forIndexPath:indexPath];

        fieldCell.fieldNameLabel.text = self.boundarier.name;

        return fieldCell;
    }

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;
}

FielcInfoCell:

@interface FieldInfoCell : UITableViewCell

@property (strong, nonatomic) IBOutlet UILabel *fieldNameLabel;

@end

@implementation FieldInfoCell

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

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end

正在重命名标签,但未设置单元格大小和背景颜色。

编辑:

我在IB中设置了高度:

enter image description here

加入:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 150;
}

这给了我高度,但仍然没有背景颜色。有点让我觉得我没有正确设置别的东西。

3 个答案:

答案 0 :(得分:2)

不幸的是,您无法在xib中为普通表格视图样式设置背景颜色(它适用于分组样式表)。你必须在tableView中设置代码的颜色:willDisplayCell:forRowAtIndexPath:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 0)
        cell.backgroundColor = [UIColor colorWithRed:173/255.0 green:75/255.0 blue:33/255.0 alpha:1];
}

答案 1 :(得分:1)

您可以从UITableViewDelegate设置tableView行高:

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
       return YOUR_HEIGHT;
     }

答案 2 :(得分:0)

在Interface Builder中检查父UITableView上的单元格高度。该值必须是原始(较小)值。尝试将此值设置为要将其设置为的高度。