問題タブ [nslayoutconstraint]

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 に答える
976 参照

uitableview - iOS6 で NSLayoutConstraints を使用して UITableView のフッターを作成し、最後のセクションの下部と UIScrollView の下部に貼り付けますか?

Interface Builder でUITableViewController、空白のビューを追加した のテーブル フッター ビューを操作する場合、制約を直接追加することはできないようです。

テーブルのフッター ビューを選択してから制約を選択すると、すべての制約がグレー表示されます。これはバグですか、それとも (より可能性が高い) テーブル フッター ビューをUIScrollView

- - - 編集 - - -

また、これをコードに追加しようとしました...

しかし、私は出力でこれを取得します:

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

ios - ビューサイズを比例的に保つAutoLayout

私は次のことを達成しようとしています:

  • xibに2つのビューがあり、エッジ(側面と上面の両方)から20ピクセル離れている必要があります
  • サイズを変更する必要がある2つのビューは同じサイズではありません
  • それらは20ピクセル離れている必要があります
  • それらの幅は、親ビューの幅に対して一定である必要があります

Widths equally私はそれを行うことについてのチュートリアルを読みました、そしてそれはうまくいきます、しかしそれに関する問題はそれが私が望まない同じ幅とピンを持つ両方のビューを必要とするということです。

これが私が試したことです:

  • 左側のビューに先頭のスペース制約を追加して20ピクセルにします
  • 左側のビューに上部スペースの制約を追加して20ピクセルにします
  • 右側のビューに上部スペースの制約を追加して20ピクセルにします
  • 右側のビューにテーリングスペースの制約を追加して、20ピクセルにします
  • 両方のビューに水平方向の間隔の制約を追加して20ピクセルにします

私が遭遇している問題は、左側のビューのサイズが変更されず、右側のビューがスペースを埋めて20ピクセルの水平方向のスペースを維持することです。

両方のビューを、埋める必要のあるスペースに比例してサイズ変更する方法はありますか?

これが私のレイアウトと制約のスクリーンショットです:

xibレイアウト制約の定義

ありがとう!

編集

デバイスを回転させようとすると、次の警告が表示されます。

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

objective-c - NSLayoutConstraintsとビューの幅/高さを動的に設定する

いくつかのレイアウト制約を適用するビューのサイズの設定について質問があります。
フレームを定義せずにビューのサイズを定義するにはどうすればよいですか?

高さが固定され、画面の原点を原点とするビューを作成しようとしています。ビューの幅全体に表示されるため、デバイスを回転させると、ビューは画面の幅まで広がります。これは私がこれまでに持っているものです...

問題は、そのフレームを設定しないと、画面に何も表示されないことcontainerViewです。Interface Builderを使用せずにこれを行う正しい方法は何ですか?

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

objective-c - Autolayout でレイアウトされたサブビューのサイズに基づいて親ビューのサイズを変更する方法

スクリーンショットに示されている例に似たカスタム ビューを準備しています。実行時にすべてのユーザー インターフェイス コンポーネント (ラベル、テキスト フィールド、ラジオ ボタンなど) を追加します。要素を配置するには、Autolayout制約を使用します。この部分は今のところ問題なく動作しています。

カスタム ビュー

要素の数は、コンテキストによって異なります。Autolayout 制約を使用して親ビューのサイズを動的に変更するにはどうすればよいでしょうか(ほとんどの場合、ビューの高さ)。したがって、ビューの制約では、現在アタッチされているサブビューに対して定義されている高さとマージンを考慮する必要があります。

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

iphone - App crash on iOS 5 - Could not instantiate class named NSLayoutConstraint

My app is working very fine on iPhone and Simulator with iOS 6, but when i try to run on iPhone/Simulator with iOS 5 the app crashes

The error is:

Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'

I'm not using Autolayout on Interface Builder Document.

Could anyone help me?

Autolayout is not checked

0 投票する
6 に答える
82044 参照

ios - iOS: 新しい autolayout 制約 (高さ) にアニメーション化する方法

これまで自動レイアウトの制約を扱ったことはありません。私が取り組んでいる小さな新しいアプリがあり、NIB のビューがデフォルトで自動レイアウトになっていることに気付きました。それで、私はこの機会を利用し、Apple がこれでどこに向かっているのかを理解しようと考えました。

最初の課題:

MKMapView のサイズを変更する必要があり、新しい位置にアニメーション化したいと考えています。私が慣れている方法でこれを行う場合:

...その後、兄弟ビューが更新されるたびに、MKMapView は元の高さに「スナップ」されます (私の場合、UISegmentedControl のタイトルが更新されてい[myUISegmentedControl setTitle:newTitle forSegmentAtIndex:0]ます)。

だから、私がやりたいと思うのは、MKMapViewの制約を、親ビューの高さに等しいものから、それカバーしていたUISegmentedControlの上部に相対的なものに変更することです:V:[MKMapView]-(16)-[UISegmentedControl]

私が望むのは、MKMapView の高さを短くして、マップ ビューの下にあるいくつかのコントロールが表示されるようにすることです。そのためには、制約を固定のフル サイズ ビューから、下部が UISegmentedControl の上部に制限されるビューに変更する必要があると思います...ビューが新しいサイズに縮小するときにアニメーション化したいと思います。

これについてどうやって行くのですか?

編集 -このアニメーションはアニメーション化されていませんが、ビューの下部はすぐに 170 移動します:

IBでnibMapViewConstraint下部の垂直スペース制約に接続されています。

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

ios - ASCI-artに触発されたフォームを使用して、この単純なセンタリングNSLayoutConstraintをどのように指定しますか?

単純な制約があり、Asci-artに触発された形式を使用して指定したいのですが、この例を見つけることができないようです。

'|-[childView]-|'などのいくつかのことを試しました ただし、これは、親の左側にXポイントを強制するだけです。

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

iphone - サブクラス化された UIView のサブビューでのプログラムによる自動レイアウト

UIView をサブクラス化してカスタム groupView を作成し、簡単な方法でレイアウトにいくつかのものを追加しました。この groupView には、見出しとして使用される UILabel と、背景色を持つ CALayer に roundRect を描画する UIView が含まれています。UITableView のセクションを考えてみてください。UIView をドロップし、そのクラスをサブクラスに変更することで、この groupView をストーリーボードに追加します。Xcode でユーザー定義のランタイム属性を使用して見出しを設定しました。ストーリーボードのこのビューに UILabels を追加すると、実行時に見出しラベルと roundrect が作成されます。

私のgroupViewの構造:

  1. groupView: (UIView)clipToBounds:NO;
    • 見出し: (UILabel) groupView の上に配置されます。
    • contentView:(UIView) は、CALayer を介して roundRect と色を作成し、groupView と同じサイズにする必要があります。

だから問題は何ですか?自動レイアウトを扱うのは最初は面倒ですが、このサブクラス化された UIView を機能させるには、contentView の制約をプログラムで設定する必要があります。この自動レイアウト ASCII フォーマット文字列の構文がわかりません。現在私は持っています:

*キャッチされない例外 'NSGenericException' が原因でアプリを終了しています。理由: 'ビューに制約をインストールできません。制約は、ビューのサブツリーの外部から何かを参照していますか? それは違法です。制約: ビュー:>'

私はこれを最初に試しましたが、それでもうまくいきませんでした:

*キャッチされない例外 'NSGenericException' が原因でアプリを終了しています。理由: 'ビューに制約をインストールできません。制約は、ビューのサブツリーの外部から何かを参照していますか? それは違法です。制約: ビュー:>'

RANT: どういうわけか、この AutoLayout は私たちの作業を節約すると思われますが、今のところ利点がどのようにオーバーヘッドを上回っているかわかりません。いったいなぜ彼らは、参照やメソッド、さらには型定義を使用することから、この古風なフォーマット文字列に移行したのでしょうか? [_contentView constraint:NSLayoutFormatAlignLeading toView:self withDistance:0.0f]; または似たようなものですか?この時点では、むしろスプリングとストラットを扱いたいと思います。

contentView を self のサイズに制限するための構文を理解したり、表示したりするのに役立ちます。

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

cocoa - 内容に合わせて幅固定、高さ可変のNSViewを作る

幅が固定で高さが可変のビューを作成したい。これは、コンテンツの高さに応じてビューのサイズを自動的に変更する必要があることを意味しますが、同時に同じ幅を維持する必要があります。

どうすればプログラムでそれを達成できますか?

たとえば、ラベルとボタンを作成する次のコードがあります。

それらはcontentViewフレーム全体を埋めるように設定されました。固定幅と可変高さ (それ自体のテキスト コンテンツに基づく)を設定labelするにはどうすればよいですか?buttonlabel


さて、私はlabelこのように自動サイズ調整することができました:

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

nslayoutconstraint - フレームのビューが awakeFromNib に設定されていないようです

View Controllerでautolayoutを使用して、uiviewをナビゲーションバーのように整列させています(上に整列し、トレーリングサイドとリーディングサイドに引き伸ばし、高さ44)。

このビューをサブクラス化しましたが、その間awakeFromNibにサブビューを追加したいと考えています。

ただし、これらのサブビューを (親ビューにも制約を付けて) 追加すると、機能しません。

最初は、制約が正しくプログラムされていないと思っていましたが、次のようにビューのフレームをログに記録した後:

次の出力が得られます。

しかし、たとえば、touchesBegan:withEvent:ログインすると、正しいフレーム サイズがログに記録されます。

誰がこれを引き起こしているのか知っていますか?

setTranslatesAutoresizingMaskIntoConstraints:NOまた、関連するすべてのビューを設定しようとしました。しかし、何も機能していないようです。

前もって感謝します!