UITableView ::实例化时的错误(内部详细说明)

时间:2012-05-03 03:21:59

标签: iphone ios ipad

我正在尝试缩小我在iOS应用程序中使用2个单独的UITableView实例的问题。也许我在UITableViews上设置了一个不好的属性,或者它可能是别的东西,但是这两个的症状都是我最好的确定。

首次创建表并加载数据时,会发生以下两个错误。但是,如果我然后拖动并释放(从而成功滚动表格,甚至一点点),两个错误都会立即消失。

  • 我无法点击任何行(永远不会发送委托回调)
  • 没有数据显示(好像表格是空的)

同样,一旦我试图拖动桌子,这两个错误就会立即消失。我还应该提到它们不会100%发生。我猜这可能意味着我缺少某种竞争条件。

这些表是以编程方式实例化的UITableView的子类(通过initWithFrame :)。这是我在子类上重写的构造函数:

- (id) init
{
if((self = [super initWithFrame:CGRectMake(0, 0, POST_WIDTH, 0)]))
{
    self.scrollsToTop = YES;
    self.dataSource = self;
    self.delegate = self;
    self.rowHeight = POST_DEFAULT_HEIGHT;
    self.delaysContentTouches = YES;
    self.backgroundColor = [UIColor clearColor];
    self.separatorColor = [UIColor clearColor];   
    self.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 2);
    self.showsVerticalScrollIndicator = NO;
}
return self;
}

回顾:零,上述2个错误中的一个或两个在创建时会在每个表中随机出现,但在略微滚动表格时会消失。

感谢您的耐心,因为我很难过:(

FWIW,它发生在iPhone和iPad上,包括运行iOS5的模拟器。

1 个答案:

答案 0 :(得分:1)

我假设您的问题是由于数据源和委托。尝试为您创建和使用tableView的类设置数据源和委托。

从子类

更改以下代码
self.dataSource = self;
self.delegate = self;

像这样的超级

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