2009-05-13 10 views
0

私はUITableViewを表示し、時には最初の行がビューの下部に表示されます。UITableViewを表示するときのオフセット

最初の行の上には何もありません。空のスペースには触れられません。

はこれまでのところ、私がチェックしました:のtableViewの

  • headerViewは:
  • 使用平野UITableViewCells
  • チェック細胞のrowHeightの
  • チェックセルの枠は空です
  • バグが発生したときには、先にメモリ警告がありません
  • contentを確認してください。テーブルスクロールビューのオフセット

このバグはiPhoneにのみ表示され、シミュレータでは表示されません。

左側のスクリーンショットは正しいテーブルビューを示し、右側のビューはバグを示しています。スナップショットを撮るときに、画面に触れてスクロールバーが見えるようにしました。

私はどの方向に見えるべきでしょうか?

私はちょうどtableView scrollViewのサイズが間違っていることを見ました:私は84セル@ 67ピクセルと1セル@ 57ピクセルの高さを持っています:合計5685が6005です。奇妙な。

ステファン

alt text http://www.quicksnapper.com/files/5161/18374733084A0B3EA24D152.png

+0

あなたは私がチェックしたことをすべてチェックしました。あなたはセクションを使用しているとは思われません。セクションをもう一度チェックして、UITableViewCellをサブクラス化しているなら、そのコードをもう一度チェックします。 – Jordan

答えて

0

だから私は私の問題への解決策が見つかりました:

はのNSLog(@ "を")を追加します。これは奇妙です。私のviewWillAppearで

、私はのNSLog(@ "は")バグを解決追加

if (searchByCuisinier || searchByResto) { 
    NSLog(@"Will set tableHeaderView"); 
    self.tableView.tableHeaderView = searchBar; 
    if (searchByCuisinier) { 
     searchBar.placeholder = @"Cuisinier"; 
    } else { 
     searchBar.placeholder = @"Restaurant"; 
    } 
    searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone; 
    searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
    if ([filteredList count] == 0) 
     [searchBar becomeFirstResponder]; 
    } else { 
    self.tableView.tableHeaderView = nil; 
    NSLog(@""); // Magic! 
    } 

を持っています。

もテストを反転: 代わりに私は
if (searchByCuisinier || searchByResto) { 
.... 

の:この作業の理由

if (!searchByCuisinier && !searchByResto) { 
.... 

私は絶対にないアイデアを持っていない(または、それはのNSLogせずに仕事をdoesntの理由)。

1

あなたはヒットテストを実行し、その後のUITableViewのtouchesBeganメソッドをオーバーライドすることができます。

次に、ビューがどのクラスであるかを返すように依頼します。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 

CGPoint location = [[touches anyObject] locationInView:self]; 

UIView *whatIsThis = [self hitTest:locationInView withEvent:event]; 

NSLog([[whatIsThis class] description]); 


} 

少なくとも出発点があります。そのスーパービューが誰であるかを尋ねることもできます。

+0

これはUITableViewで、スーパービューはViewです。 –

+0

これはセルではなく、テーブルヘッダーまたはセクションヘッダーではありません。私はそれらがあなたが望む答えだとは思っていませんが、あなたがバグを追跡できるようにするかもしれません –

関連する問題