2009-08-23 7 views

答えて

2

テーブルビューデリゲートのtableView:willBeginEditingRowAtIndexPath:tableView:didEndEditingRowAtIndexPath:を実装して、特定の行(したがってテーブル)がいつ編集モードに入るかを知ることができます。

そこから、必要に応じて(UIViewアニメーションブロック内の)テーブルビューのframe.size.heightプロパティの値を微調整することができます。補完的なメソッドへの呼び出しを受け取る前にdelegateメソッドへの複数の呼び出しを受け取った場合は、デリゲートメソッド内でテーブルビューの全体のプロパティとしてeditingのプロパティを確認することも役立ちます。

さらに詳しい情報:

  • UITableVieweditingプロパティ
  • UITableViewDelegatetableView:willBeginEditingRowAtIndexPath:方法(didEndEditingは、この文書でもある)
5

あなたがテーブルビューの境界を設定する必要があります。

CGRect tvbounds = [tableView bounds]; 
[tableView setBounds:CGRectMake(tvbounds.origin.x, 
           tvbounds.origin.y, 
           tvbounds.size.width, 
           tvbounds.size.height + 20)]; 
13

「境界」プロパティを操作すると、別のビュー内にフローティングテーブルがあると予期しない動作が発生することがあります。原点がまだ0,0であっても、高さを増やすとテーブルが上に向かって展開されることがあります。

"フレーム" プロパティには、より効果的かもしれません:

CGRect tvframe = [tableView frame]; 
[tableView setFrame:CGRectMake(tvframe.origin.x, 
           tvframe.origin.y, 
           tvframe.size.width, 
           tvframe.size.height + 20)]; 
関連する問題