問題タブ [layoutsubviews]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
184632 参照

ios - layoutSubviews はいつ呼び出されますか?

layoutSubviewアニメーション中にメッセージが表示されないカスタム ビューがあります。

画面いっぱいのビューがあります。画面の下部にカスタム サブビューがあり、ナビゲーション バーの高さを変更すると、Interface Builder で正しくサイズ変更されます。layoutSubviewsビューが作成されたときに呼び出されますが、二度と呼び出されません。私のサブビューは正しくレイアウトされています。通話中のステータスバーをオフにするlayoutSubviewsと、メインビューがサイズ変更をアニメーション化しても、サブビューはまったく呼び出されません。

layoutSubviews実際にどのような状況で呼び出されますか?

カスタムビューに設定しましたautoresizesSubviewsNOInterface Builder では、上部と下部のストラットと垂直方向の矢印が設定されています。


パズルのもう 1 つの部分は、ウィンドウをキーにする必要があることです。

それ以外の場合、サブビューは自動的にサイズ変更されません。

0 投票する
4 に答える
17223 参照

iphone - アニメーション中のlayoutSubviews?

私はUIViewすべてを使用して配置された一連のサブビューを持っていlayoutSubviewsます。のviewサイズを変更すると、相対位置がすべて変更されます。アニメーションのサイズ変更中にこれらの再計算が行われるようにしたいと思います (+[UIView beginAnimations:]呼び出しを使用)。これは起こっていないようです。何か案は?

0 投票する
2 に答える
2965 参照

iphone - カスタム UIButton での titleLabel の手動配置 (layoutSubviews を使用)

アプリの UIButton サブクラスを作成しましたが、ボタンの高さの約 1/4 になるように titleLabel を手動で再配置する必要があります。この郵便受け; http://forums.macrumors.com/showthread.php?t=763140は同じ問題に直接対処しているようで、解決策はシンプルで完全に理解できます。ただし、layoutSubviews のオーバーライドが呼び出されないため、これを実装できませんでした。私のボタンは静的なので、layoutSubviews は初めて呼び出す必要がありますが、決してそうではありません。私のコード:

ラベルの移動は問題ありませんが、layoutSubviews が呼び出されることはありません。私もlayoutIfNeededを追加しようとしましたが、違いはありませんでした。さらに奇妙なことに、コンストラクターから直接 [self layoutSubviews] を呼び出そうとしましたが、layoutSubviewsはまだ呼び出されていません。これはSDK 3.1.3のバグかもしれないと思い始めています

誰か助けてくれませんか?!

0 投票する
5 に答える
9540 参照

iphone - UIViewを回転するときにlayoutSubviewsをオーバーライドする

UIView 内でスクロール ビューを回転させると、デフォルトの自動サイズ変更動作を使用してスクロール ビューが正しく配置されません。

したがって、回転が発生すると、willRotateToInterfaceOrientation私は呼び出し[self.view setNeedsLayout];、私のlayoutSubviews方法は次のとおりです。

しかし、メソッドにブレークポイントを設定すると、メソッドに入らないようです。

それを機能させるために何か他のことをする必要がありますか?

ありがとう。

0 投票する
2 に答える
802 参照

iphone - UIButtons を循環するときは layoutsubviews() を使用すると正しく機能しますが、タグで取得しながら循環するときは機能しません

タイル ゲームの iPhone スプリングボードのドラッグ アンド ドロップ機能を模倣しようとしています。現在、MatrixCells を使用してビューの初期化で UIButtons を生成し、それらをビューに追加しています。MatrixCells にはorder、独自のボタンにも使用されるタグがあります ( [button setTag:[cell order]];)。

「layoutSubviews」を使用してビュー内の UIButtons を循環させ、それらをグリッドに配置すると、正常に動作します。グリッドがポップアップ表示され、ドラッグ機能を使用して、必要な場所にボタンを自由にドラッグできます。

- (void)layoutSubviews {

}

ただし、セルの順序を変更するときは、循環はsubviews機能しません。だから、私は自分を循環させ、MatrixCellsそれらを使用しorderて適切なビューを取得し、次にframe. しかし、ボタン0でレイアウトがおかしくなり、ボタンとして使用できなくなりました。

- (void)layoutSubviews {

}

結果の写真は次のとおりです。http://i52.tinypic.com/2q903lk.png

viewWithTagこれに対する最もエレガントなソリューションのようです。だから私は途方に暮れています。これらの実装が同じようにレンダリングされない理由は何ですか?

0 投票する
2 に答える
4264 参照

iphone - デバイスの回転に関係なく、layoutsubviews は 1 回だけ呼び出されます

タイトルの内容: 空の UIView サブクラスを作成し、それにサブビューを追加します。空の layoutSubviews メソッドを作成し、そこにブレークポイントを追加します。次に、プロジェクトをビルドすると、layoutSubviews メソッドのその時点でビューをロードすると、シミュレーションが停止します。これまでのところ、すべて問題ありません。シミュレーションを続行し、デバイスを回転させます (View Controller が任意の方向を許可するように設定されていると仮定します) が、オブジェクトがどのように回転しているかを確認できるにもかかわらず、layoutSubviews が再度呼び出されることはありません。何か案が?

OK、質問を簡単にします: いくつかのサブビューを持つカスタム UIView を作成し、デバイスの向きに反応させるにはどうすればよいですか? drawRect などを使用する必要はありません。UIView をサブクラス化し、いくつかのサブビューを追加して、デバイスが回転しているときにそれらを処理するだけです。

0 投票する
2 に答える
3950 参照

iphone - 回転後に iPad の背景画像を変更する

を使用してアプリの bg を表示しUIImageViewます。正しいインターフェイス ローテーションをサポートするには、layoutSubviewsメソッドを記述します。このメトド .frame プロパティでは正しく変更されますが、次のUIImageViewように画像を変更しようとすると:

何も変わっていません。私は何か間違ったことをしましたか、それとも方法でのイメージを変更することは不可能UIImageViewですlayoutSubviewsか?

0 投票する
1 に答える
1450 参照

iphone - 編集モードに出入りするUITableViewCellでサブビューのサイズ変更を処理するにはどうすればよいですか?

質問-編集モードに出入りするUITableViewCellでサブビューのサイズ変更を処理するにはどうすればよいですか?

背景-使用するテキストとフォントに基づいて、UiLabelsとUITableViewCellのサイズを設定する方法を検討しました。私は現在、cellForRowAtIndexPathでこれを管理しています(プログラムでUILabelを作成し、既存のcontentViewにサブビューとして追加しています)

側面-だから私は答えが私のために以下を含むものをクリアすることを望んでいます:

  1. このアプローチは、UITableViewが編集モードに入るたびにサブビュー(UILabelなど)の位置(x / y / height / widthなど)を手動で再決定する必要があるという事実に基づいていますか?

  2. はいの場合-通常、これを行う方法はどれですか?例:cellForRowAtIndexPath?

  3. はいの場合-編集モードのケータリングに関して、表示される編集アイコンの標準的な(変更されない)削減量(ピクセル単位)を想定できますか?

  4. いいえの場合-ここでのアプローチは何ですか?どういうわけかスケーリングの使用?これを自動的に実行できるようにするには、どの属性を設定する必要がありますか

ありがとう

0 投票する
2 に答える
1095 参照

iphone - サブクラス化されたUITableViewCell内からUITableViewController変数にアクセスする方法は?

UITableViewControllerサブクラス内からパラメータにアクセスするにはどうすればよいUITableViewCellですか?

フォント サイズのパラメータがありますUITableViewController(つまり、ユーザーはフォント サイズを変更できます)。そのためlayoutSubviews、カスタム サブクラスのメソッドは、UITableViewCellそれ自体を再レイアウトする必要があるときに最新のフォントにアクセスする必要があります (ラベルの位置はフォントに依存するため)。

私の質問は、私のカスタム サブクラス化された からUITableViewCell、具体的にはlayoutSubviewsメソッド内で、からのインスタンス変数である「uiFont」パラメーターにどのようにアクセスしますUITableViewControllerか?

0 投票する
2 に答える
6447 参照

iphone - カスタム UITableViewCell 内に配置するカスタム UIView のサイズ/位置を設定するにはどうすればよいですか?

UITableViewCell内にプログラムで配置されているサブビューのサイズを設定するにはどうすればよいですか?

セルの一部にカスタム UIView として実装されている多数の行 (動的) が含まれるカスタム (サブクラス化) UITableViewCell があります。アイデアは、カスタム ビュー (アイテムの行) を作成し、UITableViewCell が layoutSubviews にヒットすると、(a) 再配置を設定し、(b) ループして各行で「layoutSubviews」を呼び出すことです。行に使用しているカスタム UIViews。

質問- カスタム UIView 行のサイズ/位置を正しく設定する方法がわかりません。カスタム UIView layoutSubviews メソッド内で、x、y、幅、高さを決定して配置できるようにするにはどうすればよいですか?

たとえば、UITableCellViewのlayoutSubviewsメソッド内で手動ですべての行をループし、それらのカスタムメソッドを呼び出して、必要な位置/幅/高さを渡す必要がありますか? 次に、カスタムUIView行のlayoutSubviewメソッドがヒットすると、これらの値を使用するためにこれらの値を格納したインスタンス変数を検索することがわかりますか?

うまくいけば、これは理にかなっています。

構造は次のとおりです。

動的カスタム UITableCellView (サブクラス化)

  • heightForRowAtIndexPath で動的に rowHeight を決定します
  • layoutSubviews では、(私が持っているカスタム UIView の) サブビューのループを含み、これらのそれぞれで layoutSubview を呼び出します

カスタムUIView(UILabelなどのアイテムの行を表す)

  • layoutSubview で - 質問: このサブビューのフレームのサイズをどのように設定しますか?
  • フレームの x、y は 0,0 にすべきだと思いますか?
  • 幅/高さについては、設定するスーパービュー領域のフルサイズをどのように取得しますか?
  • スーパービューは、layoutSubviews の前にこの情報をスーパービューに渡す必要がありますか?