問題タブ [autolayout]

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 投票する
1 に答える
3261 参照

objective-c - NIBからロードされ、制約に従わないaddSubViewで表示されるビュー

私は非常に簡単にビューをロードしています:

これは、ステータスバー、トップバー、ボトムバーがなしに設定された、ポートレートモードのフルハイト4インチ網膜ビューです。画像が下部に沿って配置されるなどの制約があります。アプリの他の場所のコントローラー内で同様のビューを使用すると、サイズが変更されます。 (NavigationBarとTabBarを使用して)使用可能なスペースに入れることはまったく問題ありませんが、ペン先から直接ロードされてから追加されたこのビューは、制約を無視しているように見えます。

ビューは、ナビゲーションバー/タブバーの組み合わせの有無など、あらゆる種類の状況での使用を目的としています。

私はsplashViewsetNeedsLayoutでのさまざまな組み合わせを試しました。ビュー自体setNeedsUpdateConstraintsも呼び出してみました。layoutSubviews

誰かアドバイスはありますか?この場合、私はそれを別の方法で行うべきですか?おそらくviewControllerを使用するか、コードに制約を手動で追加しますか?

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

objective-c - 自動レイアウト制約 - キーボード

自動レイアウトの制約があるテーブルビューをスムーズにアニメーション化しようとして立ち往生しています。.h に制約 "keyboardHeight" への参照があり、これを IB にリンクしました。私がしたいのは、テーブルビューがポップアップしたときにキーボードでアニメーション化することだけです。これが私のコードです:

問題は、アニメーション ブロックが瞬間的であり、キーボードがアニメーションを終了する前に空白が表示されることです。したがって、基本的には、キーボードがアニメーション化されているため、ビューの白い背景が表示されます。キーボードがアニメーションしている限り、アニメーションを持続させることはできません。

私はこれに間違った方法でアプローチしていますか? 前もって感謝します!

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

ios - NSLayoutConstraints はアニメーション可能ですか?

横向きの巨大なキーボードによってブロックされるように、いくつかのビューをアニメーション化しようとしています。フレームを単純にアニメーション化すればうまく機能しますが、これは非生産的であり、代わりに NSLayoutConstraints を更新する必要があると他の人が示唆しています。ただし、それらはアニメーション化できないようです。彼らを成功に導いた人はいますか?

その結果、問題の高さまで瞬時にジャンプします。

0 投票する
12 に答える
59906 参照

ios - 自動レイアウトが使用されている場合、CALayer のアンカー ポイントを調整するにはどうすればよいですか?

: この質問が出されてから、事態は進行しています。最近の概要については、こちらを参照してください。


自動レイアウトの前は、フレームを保存し、アンカー ポイントを設定し、フレームを復元することで、ビューを移動せずにビューのレイヤーのアンカー ポイントを変更できました。

自動レイアウトの世界では、フレームを設定することはもうありませんが、制約は、ビューの位置を調整して元の位置に戻すタスクに対応していないようです。制約をハックしてビューを再配置できますが、回転またはその他のサイズ変更イベントでは、これらは再び無効になります。

次の素晴らしいアイデアは、「無効なレイアウト属性 (左と幅) の組み合わせ」を作成するため機能しません。

ここでの私の意図はlayerView、調整されたアンカー ポイントを持つビューの左端を、その幅の半分に 20 を加えた値 (スーパービューの左端から挿入したい距離) に設定することでした。

自動レイアウトでレイアウトされたビューで、ビューの位置を変更せずにアンカーポイントを変更することはできますか? ハードコーディングされた値を使用して、回転ごとに制約を編集する必要がありますか? ないことを願っています。

ビューに変換を適用したときに正しい視覚効果が得られるように、アンカー ポイントを変更する必要があります。

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

objective-c - テキストフィールドのオートレイアウトによる高さの変化に伴うフォントサイズの変更

自動レイアウトでサイズ変更できる UITextField があります。テキストフィールドの高さがフォントよりも小さくなると、フォントサイズを自動的に小さくするにはどうすればよいですか?

ありがとう

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

objective-c - iPhone5の自動レイアウトが正しくない

新しいiPhone画面が私のアプリを台無しにしてしまいました。iPhone 3.5インチの画面では、すべてが適切ではありません。同じストーリーボードに2つの異なるビューがあり、ストーリーボードビューの検出と切り替えを試しましたが、まだ何も機能していません。起動時に正しいビューに切り替える方法に関するコードを入手できますか?このコードをメインのViewControllerに配置しますか、それともアプリデリゲートに配置しますか?

私の見解はどのように見えるかhttp://www.fileden.com/files/2012/6/18/3317719/screenshot7.jpg

0 投票する
3 に答える
2934 参照

ios - ポートレート モードでの iOS 自動レイアウトのパフォーマンスの問題。【NSISEngine最適化】

私は非常に奇妙な問題に遭遇しました。私は完全に道に迷ったので、誰かがここで私を助けてくれるかどうか疑問に思っていました.

コンテキスト: 比較的単純な階層を持つアプリを開発しています。ビューコントローラーはほんの少しですが、高解像度の画像がかなりあります。それらはUIScrollViewいくつかのテキストなどで表示されます。ポートレートモードでテストしている間、スクロールビューはまったくスムーズにスクロールしませんでした。フレームレートが 4 ~ 5 fps に落ちたようです。最初は、高解像度の画像のせいだと思いました。

しかしその後、iPad を横向きモードにすると、すべてがスムーズに実行されました。私は縦向きと横向きの別々の xib ファイルを持っているので、縦向きの xib に問題があるはずだと思いました。それはありませんでした。どちらも同じ VC クラスを持っていたため、同じコードを使用し、両方の xib は、ビューのサイズと位置を除いてほぼ同じです。

問題を絞り込むために、Instrument の TimeProfiler を使用して問題の原因を調べました。結局のところ、TimeProfiler は[NSISEngine optimize](によってトリガーされたNSLayoutConstraint) への呼び出しをいくつか示しました。縦向きモードでは、より多くの呼び出しが行われ、それらの呼び出しにかかる時間ははるかに長くなりました。ツリーをさらに下に見ると、ポートレート モードで[NSISEngine optimize]は呼び出され[NSISEngine fixupIntegralizationViolations]、ランドスケープ モードでは呼び出されないことがわかりました。

rootVCとrootVCによって提示される他の1つを除いて、アプリからすべてのviewcontrollerを削除しました。提示された vc には、いくつかの画像、ボタン、およびいくつかのアニメーションが含まれています。両方の向きに xib が 1 つだけあり、(他のすべてと同様に) autolayout でレイアウトされます。

レイアウトは両方の向きで正常に機能し、あいまいさはありません (私が知る限り、少なくとも何も表示されpo [[UIWindow keyWindow] _autolayoutTrace]ません)。

VC のプレゼンテーション プロセスの TimeProfile のスクリーンショットを添付しました。1 つはポートレート用、もう 1 つはランドスケープ用です。ご覧のとおり、横向きでは呼び出しに[NSISEngine optimize]1 ミリ秒しかかかりませんが、縦向きでは 3000 ミリ秒以上かかります。

その理由を教えてくれる人はいますか?または、問題が何であるかを知るために何ができるか考えていますか?

どんな助けでも大歓迎です!

どうも

画像の拡大版へのリンク:リンク

計測器のタイムプロファイラーのスクリーンショット

0 投票する
7 に答える
14023 参照

ios - 自動レイアウトをデバッグするために Xcode/iOS で UIView の識別子を設定する方法は?

WWDC 2012 (自動レイアウトをマスターするためのベスト プラクティス) の講演中に、プレゼンターは、自動レイアウトのデバッグを支援するために Xcode で UIView 識別子を設定できると述べました。

UIView の識別子

これは非常に良いアイデアのように思えますが、私の iOS プロジェクトの Xcode 4.5.1 では、UIView の ID を設定する方法がありません。

Xcode 4.5.1 で UIView の ID を設定するにはどうすればよいですか? iOS プロジェクトでこれが不可能な場合、どうすれば同じ機能を得ることができますか?

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

ios - sizeToFitと制約

私は見解を持っています:

私の見解

label1とlabel2の間にはレイアウトの制約があります。ボタンを押すと、テキストビューからlabel1にテキストが追加されます。その後、ラベル1はテキストに合わせてサイズ変更されます(sizeToFitが呼び出されます)。サイズを変更した後、制約が機能しないように見えます。

制約

誰かが制約を機能させる方法を知っていますか?

私のクーデ:

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

iphone - iOS: UIButton が削除された後、UIScrollView がスクロールしない

次のようなView Controllerがあります。

ここに画像の説明を入力

ルート ビューはスクロール ビューです。ビューが最初に読み込まれると、問題なくスクロールします。

ただし、次のようなコードを使用して、下部にあるボタンの 1 つを削除する必要がある場合があります。

ただし、その後、スクロール ビューはスクロールしなくなります。(画面の中央にあるこれらのビューは拡大されるため、画面の下部を超えて広がるコンテンツが常にたくさんあります)。

ここでは自動レイアウトを使用する必要があることに注意してください。私の疑いは、これが問題の一部であるということです。ボタン (および、必然的に関連する制約) を削除すると、スクロール ビューが混乱しますか?