未调用cellForRowAtIndexPath

时间:2015-02-18 22:03:39

标签: ios objective-c ios7 xcode6

我有一个表格视图控制器,其中单元格不显示: 我添加了UiViewDataSource和UITableViewDelegate,如下所示:

myViewController:UITableViewController<UITableViewDataSource,UITableViewDelegate>

在故事板以及我设置的代码中

self.tableView.delegate =self;
self.tableview.datasource = self;

我的numberOfRowsInSection返回值30(用日志验证),numberOfSectionsInTableView返回1(用日志验证)

我还打印了tableView页眉和页脚视图框,高度和宽度,它们都具有值0.0000

NSLog(@"The header frame size is%f" ,self.tableView.tableHeaderView.frame.size.height);
NSLog(@"The header frame size is%f" ,self.tableView.tableHeaderView.frame.size.width);
NSLog(@"The header frame size is%f" ,self.tableView.tableFooterView.frame.size.height);
NSLog(@"The header frame size is%f" ,self.tableView.tableFooterView.frame.size.width);

这是导航控制器的第一个控制器。 首先调用numberOfSectionsInTableView方法,然后调用numberOfRowsInSection,然后调用heightForRowAtIndexPath。

cellForRowAtIndexPath方法包含:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    CustomCell *cell = (CustomCell *) [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    [cell configureCustomCell:[self.dataSource objectAtIndex:indexPath.row]];

    return cell;
}

configureCustomCell配置单元格中的不同属性。

我尝试了类似问题中提供的所有解决方案,但它们似乎都没有起作用。我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果您在ViewController.h文件中配置了UITableViewDataSourceUITableViewDelegate协议,则无需使用self.tableView.delegate =self;

self.tableview.datasource = self;

如果您在故事板中配置了UITableView。 您需要使用CustomTableViewCell单元格属性配置tableView's

enter image description here 步骤1      选择你的tableView Cell和内部身份检查器定义你的CustomTableViewCell类。

enter image description here

步骤-2      现在提供小区标识符。 (我使用了&#34; customCell&#34;)

enter image description here

在ViewController.m文件中导入CustomCell类。刚刚根据您的参考创建了演示应用。希望它能解决您的疑问。

#import "ViewController.h"
#import "CustomTableViewCell.h" //CustomTableViewCell class

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad 
{
      [super viewDidLoad];
       // Do any additional setup after loading the view, typically from a nib.
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
     return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 30; //used staticCells 30
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"customCell"; //as defined in cell identifier (as per step -2)

    CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
    if (cell == nil)
    {
        cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    // configure your custom cell 

    return cell;

}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end