web-dev-qa-db-ja.com

あるビューから別のビューに制約をコピーすることは可能ですか?

Interface Builderを使用して、自動レイアウトでStoryboardにUIを作成するとします。あるビューから別のビューに制約をコピーまたは移動できますか?

30
kelin

インターフェイスビルダーを使用している場合、cmd-cまたはedit/copyを使用すると、いくつかの制約が自動的にコピーされます:ビュー階層のコピーを含む制約。それ以外の場合、いいえ、できません。制約を保持する場合は、ビュー全体をコピーします。

15
catanore

コピーするすべての制約を取得するためのハックです:メインビュー内に別のビューコントローラーにコピーする小さなビューがあります。これを行うには、メインビュー全体を新しいビューコントローラーのメインビューにコピーします。 。次に、小さなビュー(サイド階層)を新しいコントローラーのメインビューにドラッグし、不要な古いメインビューを削除しました。このようにして、小さなビュー内のアイテムのすべての制約を保持します。

お役に立てれば :)

15
Trianna Brannon

XMLの.xibファイルが機能します。それらにかなり慣れたので、制約のあるビューを別のビューに移動できました。

私はそれを段階的に説明しようとします:

  1. アウトレットを作成します:myView
  2. .xibファイル> Open As> Source Codeまたは別のエディターで開きます(例:Sublime Text
  3. myViewを検索すると、次のようなものが見つかります。

    <outlet property="myView" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
    

    destination属性の値をコピーします

  4. コピーしたID(i5M-Pr-FkT)および結果の1つはviewタグになります。

    <view contentMode="scaleToFill" id="i5M-Pr-FkT"> <!-- 1 -->
        ...
    </view>
    
  5. このviewタグ全体を必要なビューのsubviewsタグにカットアンドペーストします。

    <view contentMode="scaleToFill" id="Ovp-8Y-qHZ"> <!-- 2 -->
        <subviews>
            <view contentMode="scaleToFill" id="i5M-Pr-FkT"> <!-- 1 -->
                ...
            </view>
        </subviews>
    </view>
    
  6. コピーされたIDの検索を続けると、次のような制約がいくつか見つかります。

    <constraint firstItem="w7M-JQ-JWD" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="EwH-B1-XWY"/>
    
  7. これを両方のスーパービュー(古いものと新しいもの)の最も低い共通の祖先のconstraintsタグに移動する必要があります。

    <view contentMode="scaleToFill" id="rK2-sE-P0d"> <!-- 3 -->
        <subviews>
            <view contentMode="scaleToFill" id="Ovp-8Y-qHZ"> <!-- 2 -->
                <subviews>
                    <view contentMode="scaleToFill" id="i5M-Pr-FkT"> <!-- 1 -->
                        ...
                    </view>
                </subviews>
            </view>
        </subviews>
        <constraints>
            <constraint firstItem="w7M-JQ-JWD" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="EwH-B1-XWY"/>
        </constraints>
    </view>
    
11
Iulian Onofrei