0

私のアプリでは、UITableViewCellにUITextFieldがあり、現在、セルの幅全体を占めています。明らかにそれが最大になるからです。

とにかく、次のような autoresizingMask を使用するオプションがあることを知っていますか: AutoReszingMaskFlexibleWidth

とにかく、最初の質問なので、Interface Builder で幅を 1 に設定しても、UITextField は幅をテキストの幅に正しく調整しますか?

2 番目の質問、自動サイズ変更マスクの幅を最大にして、幅が 5000 にならないようにする方法はありますか?

ありがとう!

4

2 に答える 2

3

最初の質問:いいえ。幅を1に設定すると、テキストフィールドの最初の幅は1になります。テキストフィールドがテーブルビューセルのサブビューとして追加された後、テーブルビューセルの幅が変更されると、テキストフィールドの幅も変更されます。 。iOS用Viewプログラミングガイドの「自動サイズ変更ルールを使用したレイアウト変更の自動処理」をお読みください。

2番目の質問:自動サイズ変更は最大幅の設定をサポートしていません。最大幅を適用する必要がある場合は、サブクラスを作成し、サブクラスでUITableViewCellオーバーライドlayoutSubviewsして、コードで最大幅を適用します。

于 2012-06-19T22:07:18.483 に答える
1

自動サイズ変更とは、スーパービューのサイズが変更されると、ビューのサイズ(この場合は幅)が変わることを意味します。エッジまでの距離が固定され、幅が柔軟になるようにビューを設定した場合、スーパービューが100ピクセル広くなると、ビューは100ピクセル広くなります。自動的に全幅をカバーするという意味ではありません。

また、自動サイズ変更マスクは、ビューのサイズを柔軟にする必要があることのみを示しており、ビューの大きさ/小ささではありません。これらの種類の構成を行う場合は、(おそらくiOS 6を待って)自動レイアウトを確認する必要があります。(いいえ、WWDC基調講演のスライドに記載されていたため、NDAには含まれていません)

テキストフィールドのサイズをカスタム制御したくない場合layoutSubviewsは、カスタムUITableViewCellをオーバーライドする必要があります。

于 2012-06-19T22:06:52.417 に答える