Objective - C - UITableView cellForRowAtIndexPath从未调用

时间:2017-03-14 09:26:57

标签: ios objective-c uitableview

我知道这个问题被问了很多次,但不幸的是,这些问题的解决方案都没有为我工作。

以下是我尝试过的一些事情:

确保numberOfSectionsInTableView没有返回0 确保numberOfRowsInSection没有返回0。 确保使用performSelectorOnMainThread在主线程上调用reloadData,如下所示:

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]

设置委托:

 self.tableView.dataSource = self; self.tableView.delegate = self;

确保tableview背景颜色已更改。

确保tableview框架可调。

cellForRowAtIndexPath方法从未调用过

请找到代码:

UITableView * tableView;

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320,480) style:UITableViewStylePlain];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    [self.view addSubview:self.tableView]
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return 1;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

return 3;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }
    cell.textLabel.text = "test";
    return cell;

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

return 44;

}

如果你知道该怎么做,请告诉我。

由于

4 个答案:

答案 0 :(得分:1)

你创建了tableView将它作为subView添加到ViewDidLoad()中的ViewController视图,这很好:)但是你在哪里调用tableView伙伴上的重载数据:)

添加

<span id="add_cal_in">M</span>

它会像魅力一样工作:)

答案 1 :(得分:0)

只需从模拟器卸载应用程序然后再次运行。有时它不起作用。

答案 2 :(得分:0)

您必须委托和数据源协议来查看控制器

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

答案 3 :(得分:0)

<强>第一

@interface yourController ()<UITableViewDelegate,UITableViewDataSource>

<强>第二

-(void)viewDidLoad {
[super viewDidLoad];



self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320,480) style:UITableViewStylePlain];

[self reloadData]; //call your webservice here
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.view addSubview:self.tableView]
[self.tableView reloadData]; //most imp
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

return yourArray.count; //your array which is get from webservice

}