我以编程方式设置TableView
数据源和委托,并且还将必要的代码添加到视图控制器的头文件中。
在对numberOfRowsInSection
和numberOfSectionsInTableView
方法进行硬编码以返回1并添加相应的日志之后,我注意到这两种方法都被重复调用(4次),但方法cellForRowAtIndexPath
没有&#39 ;被叫一次。
TableView
没有显示在屏幕上,但我认为这是因为没有呈现单元格,但在对包括cellLabel
文本在内的所有内容进行硬编码后,我不会了解如何一遍又一遍地调用这两种方法,但跳过cellForRowAtIndexPath
方法。
日志如下所示:
2015-05-20 22:39:09.595 SchoolAnalytics [28419:2137236]#section
2015-05-20 22:39:09.595 SchoolAnalytics [28419:2137236]行数 第0节
2015-05-20 22:39:09.595 SchoolAnalytics [28419:2137236]#section
2015-05-20 22:39:09.595 SchoolAnalytics [28419:2137236]行数 第0节
2015-05-20 22:39:09.598 SchoolAnalytics [28419:2137236]#section
2015-05-20 22:39:09.598 SchoolAnalytics [28419:2137236]行数 第0节
2015-05-20 22:39:09.598 SchoolAnalytics [28419:2137236]#section
2015-05-20 22:39:09.598 SchoolAnalytics [28419:2137236]行数 第0节
我如何加载细胞:
- (void)viewDidLoad {
[super viewDidLoad];
targetList.delegate = self;
targetList.dataSource = self;
// Do any additional setup after loading the view.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSLog(@"# of sections");
return 1; //count of section
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"Number of rows for section %li", (long)section);
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"CELL FOR ROW");
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier];
}
// Here we use the provided setImageWithURL: method to load the web image
// Ensure you use a placeholder image otherwise cells will be initialized with no image
cell.textLabel.text = @"Cell 1";
return cell;
}
我的头文件有两个代表
@interface ClassViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>
可能很重要的是,这不是根视图,它是一个segue,并且在加载此视图时,在顶部添加了一个子视图,它是UIView的子类,必须是绘制。
答案 0 :(得分:0)
numberOfRowsInSection
,就会调用 numberOfSectionsInTableView
和reloadData
。
答案 1 :(得分:0)
每次加载数据时都会调用这些委托方法numberOfRowsInSection
和numberOfSectionsInTableView
。就像你打电话[table reloadData]
5次一样,每次都会调用这些方法。