非自定义UITableViewCells在单击或滚动时消失

时间:2014-07-29 18:16:43

标签: ios objective-c uitableview

我有一个表格视图,我从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

1 个答案:

答案 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}]
};