0

iOSアプリケーション内のUITableViewの2つの別々のインスタンスで発生している問題を絞り込もうとしています。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つのバグのうち0、1、または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 に答える