0

グループ化されたテーブルビューを持つTableViewControllerを備えたストーリーボードを用意します。最初のセクションでは、セルの幅を全画面よりも小さくしたいと思います。後者を実現するために、次のメソッドを使用したカスタムUITableViewCellクラスがあります。

-(void)setFrame:(CGRect)frame {
    frame.origin.x + = NAME_TABLE_VIEW_INSET;
    frame.size.width-= NAME_TABLE_VIEW_INSET;
    [スーパーsetFrame:frame];
}

それはうまくいきます。私が抱えている問題は、ストーリーボードセルにドラッグしたUITextFieldサブビューが、その幅を新しいセルフレームサイズに自動的に調整しないことです。

UITextFieldをサブクラス化して、autoResizingMaskが正しく設定されていることを確認し、上記のsetFrameメソッドで[superlayoutSubviews]を使用してみました。これらのアプローチはどれも機能しません。

このストーリーボードアプローチを使用しながら、テキストフィールドの幅を自動的に調整する方法についての提案はありますか?

4

1 に答える 1

0

これに対する解決策は、テーブル ビュー コントローラーによって提供される tableView のヘッダーに別のテーブル ビューを追加することでした。具体的には、IB のテーブル ビューの先頭にビュー オブジェクトを追加します。テーブル ビューをサブビューとしてそのビューに追加します。新しいテーブル ビューのセルの幅を変更します。

この問題は、各セルをデフォルトで画面の幅に設定するテーブルビューコントローラーを使用したかったためにのみ発生することに注意してください。ビュー コントローラーを使用することもできますが、静的セルを含むテーブル ビューをサブビューとして追加することはできません。

于 2012-12-19T07:16:40.193 に答える