9

次の要件があります。UITableViewControllerのビューが表示されるとき、可変数の行があります。行の下にボタンが表示されます。

行数が少ない場合、ボタンはビューの下部に固定する必要があります。

行数が多い場合は、最後の行の直後に削除ボタンを配置する必要があります。

言い換えると:

ここに画像の説明を入力

そしてそうではありません:

ここに画像の説明を入力

これまでの私の最善の試みには、 を設定し、tableFooterViewを使用してその高さを更新しようとする試みが含まれていましたcontentSizeが、UITableViewあらゆる種類の問題に直面しています。私はこの道を進んで助けを求めるかもしれませんが、最初に誰かが代替の (より良い) 解決策を持っているかどうか知りたいです.

結果は、2 倍のサイズのステータス バー (通話中など) で適切に再生される必要があり、iOS 6.0 をターゲットにしています。インターフェイスビルダーを使用していません。

4

2 に答える 2

1

この効果を達成するための 1 つの解決策として、2 つの異なる解決策を使用する必要がある場合があります。

  1. 行の量がボタンが画面から外れることを意味する場合は、これまで行ってきたように footerView を使用します。

  2. 行の量がボタンが画面外に出ないことを意味する場合

    1. ボタンをtableViewに追加します
    2. - (void)scrollViewDidScroll:(UIScrollView *)scrollViewボタンのフレームを下からオフセットするように実装および更新します。

下からのオフセットは、次のようなロジックに従う場合があります

  1. yOffset = CGRectGetHeight(tableView.frame) - (CGRectGetHeight(button.frame) + somePadding)
  2. yOffset += tableView.contentOffset.y

これは、スクロールに合わせてボタンが上下に移動することを意味しますが、フッタービューの高さをいじる必要はありません

于 2012-10-14T19:43:10.113 に答える
0

テーブル ビューとボタンの両方をスクロール ビュー内に保持します。スクロールビューの下部にあるボタンを保持します。適切なスクロールを機能させるscrollEnabledには、スクロール ビューのプロパティを設定することをお勧めします。詳細については、これを確認してください

UIScrollView 内で UITableView をスクロールする

編集:

yourView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin ;

コードを使用してストラットとスプリングを実装する方法の詳細については、この質問に対する受け入れられた回答を確認してください: UIView autoresizingMask - Interface Builder to Code - Programmatically create struts and springs - Swift or Objective-C

于 2012-10-14T19:01:49.887 に答える