問題タブ [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 投票する
3 に答える
6740 参照

uilabel - Autolayout を使用して、UILabel のコンテンツに基づいて高さを拡張するレイアウトを作成するにはどうすればよいですか

iOS 6.0 の新しい autolayout API を使用して動的レイアウトを構築しようとしています。私が構築しようとしているレイアウトには、下の画像に示すように、間にラベルが付いた 2 つのボタンがあります。

ここに画像の説明を入力

私が望むのは、ラベル内のテキストの量に応じて、灰色で表示されるコンテナー ビューのサイズを増減することです。

これまでのところ、解決できなかった小さな問題が 1 つありますが、説明どおりにレイアウトを正確に機能させることができました。私が抱えている問題は、ラベルの固有の高さが、ラベルの元の幅 (たとえば、インターフェイス ビルダーで設定されたもの) で常に計算され、制約から設定されたラベルの幅ではないことです。

ビューに対する制約は次のとおりです。

  • H:|-[左ボタン]-[ラベル]-[右ボタン]-|
  • 両方のボタンが垂直方向に中央揃え
  • V: |-[ラベル]-|
  • ボタンのコンテンツの優先度がラベルよりも高い
  • ラベルの圧縮抵抗は、コンテナビューよりも高くなっています

これらの制約がすべて組み合わされて、目的のレイアウトが作成されます。

でも:

  • インターフェイス ビルダーのラベルの幅 (インターフェイス ビルダーのリテラル サイズ) が実行時のビューの幅よりも小さい場合、コンテナーの高さが大きすぎます。

ここに画像の説明を入力

これを明確にするために、上記のレイアウトの IB ビューは次のようになりました (はるかに狭いことに注意してください)。

ここに画像の説明を入力

  • インターフェイス ビルダーのラベルの幅 (インターフェイス ビルダーのリテラル サイズ) が実行時のビューの幅よりも大きい場合、コンテナーの高さが小さすぎて、テキストの行が途切れます。

発生しているように見えるのは、ラベルの幅に制約はありませんが、ラベルが作成されたときのラベルの元の幅に基づいて、ラベルの高さを計算しているように見えることです (したがって、自動レイアウトはコンテナーの高さを計算します)。ただし、非常に奇妙なのは、テキストの幅と高さが正しいように見えても、ラベル自体のフレームが大きすぎたり小さすぎたりすることです。

これは物事が起こっている順序に関連していると思います.containerViewsのlayoutSubviewメソッドでupdateConstraintsIfNeededを呼び出してみましたが、これは何もしていないようです.

どんな提案でも大歓迎です。

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

ios - iOS6では回転の動作が異なります

タブベースのアプリを作りました。ランドスケープモードである必要はありませんが、いくつかのビューがあります。iOS5でも問題なく動作し、結果にはかなり満足していました。ただし、iOS6では、何もいじることなく、すべてのビューが回転するようになり、結果は良くありません。

タブベースのアプリであるため、ランドスケープで必要な2つのビューはmodalViewsです。そうすれば、タブバーをいじることなく、ビルドオプションの[サポートされている向き]設定でポートレートを選択して、次のように設定するだけで済みました。

私が風景が欲しかった景色について。

iOS6では、このビューもポートレートモードになっていますが、デバイスを回転させてもランドスケープモードは表示されません。同様に、「サポートされている方向」ですべての方向を許可すると、上記の方法で何を実行しても、すべて回転します。

すべてのビューで、ストーリーボードの[自動レイアウトを使用する]チェックボックスをオンにしていません。

ここで何か助けはありますか?

*編集** これで、デバイスにあるアプリは正常に動作します。Xcodeからではなく、プロモーションコードをインストールして、顧客に問題があるかどうかを確認しました。幸いなことに、そうではありません。しかし、問題は残っています。

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

ios - ストーリーボードの UITableView が回転時にコンテンツ サイズを更新しない

ストーリーボードと自動レイアウトを活用する iOS 6 を対象としたプロジェクトに取り組んでいます。ストーリーボードには、UITableView がサブビューとしてビュー コントローラー ビューに追加される場所が多数あります。このテーブル ビューは、ストーリーボードのプロトタイプ セルを使用します。

私たちが直面している問題は、ビュー コントローラーが最初に横向きで読み込まれ、デバイスが縦向きに回転された場合、テーブル ビューが垂直方向と水平方向の両方にスクロールし始めることです。テーブル ビューのセルは正しい寸法で描画されますが、右側に空白が追加されます。

テーブル ビューのフレームと境界が回転時に正しいサイズに更新されている間、テーブル ビューのコンテンツ サイズは更新されていないようです。更新ローテーションの変更に関係なく、コンテンツ サイズは同じサイズのままです。

プログラムによるテーブル ビュー セルが使用されている場合、この問題は発生しません。1.) reloadData または reloadRowsAtIndexPaths:withRowAnimation を呼び出す: 2.) プロパティ contentSize を手動で設定する。

これらはどちらも理想的とは言えません。

このリンクを、この問題を示す単純なサンプル プロジェクトに追加しまし た。加えられた唯一の変更は、ストーリーボードとメイン ビュー コントローラーの実装です。

回転前 回転 回転前回転後

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

iphone - ビューのフレームを変更すると、既に設定されている自動レイアウト制約がすべてなくなるのはなぜですか?

ここに画像の説明を入力

スクリーン ショットに示すように、4 つのビューすべてを作成しwidths equallyheight equallyその後、緑のビューのフレーム サイズを変更すると、他のすべての制約がなくなりHorizontal spacingvertical spacing縦向きと横向きの両方ですべてのビューを機能させるには、最初から開始する必要があります。

また、その後、すべての制約を再度設定しますが、スクリーンショットに示すように、横向きモードのラベルが正しく表示されませんここに画像の説明を入力

これらの制約を設定します。ここに画像の説明を入力

足りないものはありますか?

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

ios - iOS 6 の自動レイアウトによる動的サイズ

1 つの xib で iPhone4/iPhone6 の画面をカバーするために、画面サイズに依存するサイズ (この場合は高さ) を持つビューが必要です。だから私は ListView を取り、それを全画面表示にしたくないが、上下にスペースを固定しているとしましょう。その高さは次のようになります。

Interface Builder では、2 つの垂直方向のスペース制約を設定し、ListView の高さの制約を削除して、親ビューとこの 2 つのスペース制約によって高さが決定されるようにすることもできます。

シミュレートされたメトリクスに Freeform を設定すると、ドラッグしてルート ビューのサイズを変更し、制約が機能していることを確認できます (ListView のサイズが適切に変更されます)。

問題:

ただし、シミュレーターでアプリケーションを実行すると、Interface Builder の最後の位置のようにすべてが固定されているように見えます。制約に従ってレイアウトが機能しない原因は何ですか?

シミュレートされたメトリックを Retina 3.5 または 4 に変更すると、Xcode は制約を削除し、固定サイズの制約に戻ります。

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

storyboard - 簡単な 3.5 インチ + 4 インチの iPhone 画面レイアウトには自動レイアウトが必要ですか?

古いアプリを新しい iPhone サイズにアップデートしていて、問題が発生しました。自動レイアウトは、古い絵コンテのいくつかの部分を壊しました。

問題ありません。入って自動レイアウトのチェックを外してください。再度実行 (3.5 インチの画面) すると、再び完全に機能し、4 インチの画面で実行されますが、何もサイズ変更されません。次の数分をかけて、自動レイアウトボックスのチェックとチェックを外し、さまざまな画面で実行します。これは明らかに問題です。

自動レイアウトをオフにし、ビュー コントローラーでトップ ビューを選択し、サイズ インスペクター インスペクターを開き、[自動サイズ変更] ボックスを確認します。ビューのサイズを変更できる内側の矢印はグレー表示されています。それらを選択することはできません。サンプルビューを見ると、ビューのサイズが変更されないことが明らかです。サイズが変更されないため、3.5 インチおよび 4 インチの画面では正しく動作しません。

この制限を回避する (かなり単純な) 方法を知っている人はいますか?

自動レイアウトで適切に動作するためにUIの更新を必要としないストーリーボードを更新することは本当に望んでいませんが、もう1つのオプションは、テストコードを記述してすべてのView Controllerにスローすることのようです。自動レイアウトで動作するようにすべてのストーリーボードを修正します。

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

objective-c - 自動レイアウトでサイズ変更されている NSView サブビューを停止するにはどうすればよいですか

新しい自動レイアウト機能に問題があります。workingBox のサブビューとして tableView という NSView を追加します。workingBox には、Interface Builder で追加された他のサブビューもいくつか含まれています

私の問題は、他のサブビューのいずれかが tableView に触れると、アニメーションでサイズが変更されることです。tableView が追加されている場所の近くにないサブビューは、正しいサイズのままです。サイズ変更されているサブビューに NSViewNotSizable resizeMask を設定しようとしましたが、機能しません。機能する唯一のことは、サブビューを上に移動することです(間違った位置に.


編集:コードに制約を追加しました:

これにより、NSView の高さが 1px に保たれますが、上部にロックすると、スーパービューが大きくなりません

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

iphone - autolayout を使用すると、ボタンが機能しなくなります

.xib ファイルのビューに自動レイアウト機能を追加しようとしています。目標は、正しい画面サイズに従ってビューを調整することです。

ビューに自動レイアウトを追加してフリーフォームを設定し、ビュー サイズを 568 に変更すると、ビューは iPhone 5 シミュレーターで正しく表示されますが、iPhone 4 で同じアプリを実行すると、下部にあるボタンを押しようとすると機能しません。ビューは正しく表示され、ボタンは機能しています。

何が欠けていますか?チュートリアルについて知っている人や、自動レイアウトなしで通常の xib を変換する方法に関する情報を見つけることができる場所を知っている人はいますか?

0 投票する
9 に答える
18690 参照

iphone - UIScrollview自動レイアウトの問題

自動レイアウト(多分)とスクロールビューに問題があります!

私の問題

  1. 下にスクロールします 意見

2.次に別のビューにプッシュします

3.次に戻ると、scrollviewがそのように見え、最高点までスクロールできません(scrollviewのバウンスで表示されます) スクロールビュー

誰か助けてもらえますか?

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

ios - 自動レイアウトが指定されているビューの位置を移動したい。(ios6、xcode4.5)

中央の座標を指定したい。

上記のコードでは、motherButtonは画面から移動しません。

どうやって行けますか?アニメーションで動きたいです。