我有一个表格视图,我从NSArray填充,每当我点击或滚动表格 all 时,TableCells就会消失。 AFAICT,单元格重用标识符没有问题,而且rowList NSArray也没有做任何有趣的事情。这是相关的代码。 “click”永远不会出现在日志中。
@interface TheTableViewController ()
@property (strong,nonatomic) NSArray * rowList;
@end
@implementation TheTableViewController
@synthesize rowList;
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [rowList count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *cid = [@"" stringByAppendingFormat:@"CellReuseIdentifier_%i",indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cid];
cell = cell ? cell : [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cid];
cell.textLabel.text = [rowList objectAtIndex:indexPath.row];
return cell;
}
#pragma mark - table view delegate
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"click");
}
@end
答案 0 :(得分:3)
事实证明问题远不及我认为的那样。一位同事指出tableview的委托和数据源正在发布。我在这里包括答案,以防任何人有/听到类似的问题或好奇。
-(IBAction)ButtonAction:(id)sender {
UITableViewController * t = [UITableViewController new];
[self.view addSubview:t.view];
[UIView animateWithDuration:0.50 animations:^{t.view.frame = CGRectMake(0,0,640,480}]
};
解决方法是让“t”成为一个属性,所以它一直存在,直到我们摆脱它。
@interface MainViewController: <
@property (strong,nonatomic) UITableViewController * t;
@end
@implementation MainViewController ()
@synthesize t;
-(IBAction)ButtonAction:(id)sender {
UITableViewController * t = [UITableViewController new];
[self.view addSubview:t.view];
[UIView animateWithDuration:0.50 animations:^{t.view.frame = CGRectMake(0,0,640,480}]
};