0

我正在尝试缩小我在 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,它发生在运行 iOS5 的 iPhone 和 iPad 上,包括模拟器。

4

1 回答 1

1

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

从您的子类中更改以下代码

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

像这样的超级班

 tableView.dataSource = self;
 tableView.delegate = self;
于 2012-05-03T04:20:29.183 回答