自定义UITableViewCell不显示内容

时间:2013-07-05 22:20:01

标签: ios uitableview storyboard

我在尝试让自定义UITableViewCell显示任何自定义标签/控件时遇到了重大问题。我有一个类似的项目使用相同的代码,它完美地工作...唯一的区别是我在UITableViewController中使用表格单元格,而不是我在UIViewController中嵌入的UITableView中使用表格单元格的问题页面。 。有些搜索stackoverflow已经提出了以下问题,我已经正确设置了所有这些问题:

1)tableView中的CellIdentifier:cellForRowAtIndexPath:匹配故事板标识符
2)所有IBOutlet都正确连接

我怀疑它可能与我加载页面的方式有关(我在viewDidLayoutSubviews方法中进行了大量页面加载,因为我使用了storyboard autolayout,因此我需要访问viewDidLoad中不可用的帧大小等)

有什么建议吗? 安迪

编辑:顺便说一句,如果我使用标准的UITableViewCell而不是我的自定义标签,它只能使用cell.textLabel.text = @“...”等。它似乎与我的自定义单元格有关

viewController.h

@interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

@property (nonatomic, weak) IBOutlet UITableView *tableView;
@property (weak, nonatomic) IBOutlet UIView *flipContainerView;
...

@end

viewController.m

@implementation ViewController

@synthesize tableView = _tableView;
@synthesize flipContainerView = _flipContainerView;

...

- (void)viewDidLayoutSubviews {

    self.tableView.frame = CGRectMake((self.flipContainerView.frame.size.width / 2) - (self.flipContainerView.frame.size.width / 2),
                                  (self.flipContainerView.frame.size.height / 2) - (self.flipContainerView.frame.size.height / 2),
                                  self.flipContainerView.frame.size.width,
                                  self.flipContainerView.frame.size.height);

    ...

    [self.tableView reloadData];
}   

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

    if (cell == nil) {
        cell = [[ListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.testLabel.text = nil;

    cell.testLabel.text = @"test value";
    return cell;
}

ListCell.h

@interface ListCell : UITableViewCell

@property (nonatomic, weak) IBOutlet UILabel *testLabel;

@end

ListCell.m

#import "ListCell.h"

@implementation ListCell

@synthesize testLabel = _testLabel;

- (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

enter image description here

enter image description here

0 个答案:

没有答案