Я просто не могу заставить свое приложение изменять размеры на разных размерах экрана. Что я делаю неправильно? - PullRequest
0 голосов
/ 21 января 2020

Я совершенно новичок в iOS разработке (и создании приложений в целом). Я вообще не понимаю, как использовать раскадровку для создания приложения. Я в основном пытаюсь скопировать то, что я написал для Android, и превратить его в приложение iOS, но приложение не изменит размер представления на экранах другого размера. Android было действительно легко для меня, и я просто чувствую, что тону с iOS.

iOS xml:

<!--Login Screen-->
    <scene sceneID="4za-P4-q9T">
        <objects>
            <viewController title="Login Screen" id="MtT-4F-W33" sceneMemberID="viewController">
                <view key="view" contentMode="scaleToFill" id="NEA-R9-GOJ">
                    <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Hw4-rM-kL1">
                            <rect key="frame" x="260" y="506" width="121" height="33"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
                            <state key="normal" title="Forgot Password?">
                                <color key="titleColor" red="0.33333334329999997" green="0.33333334329999997" blue="0.33333334329999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </state>
                        </button>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" layoutMarginsFollowReadableWidth="YES" text="Canvas Grades" lineBreakMode="tailTruncation" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uqo-Xm-Ohe">
                            <rect key="frame" x="31" y="197" width="211" height="24"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <directionalEdgeInsets key="directionalLayoutMargins" top="8" leading="8" bottom="8" trailing="8"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="20"/>
                            <color key="textColor" red="0.50980392159999999" green="0.44705882349999998" blue="0.31372549020000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" layoutMarginsFollowReadableWidth="YES" text="Highlands Latin School" lineBreakMode="tailTruncation" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Rl8-LJ-hBJ">
                            <rect key="frame" x="31" y="140" width="350" height="60"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <directionalEdgeInsets key="directionalLayoutMargins" top="8" leading="8" bottom="8" trailing="8"/>
                            <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="25"/>
                            <color key="textColor" red="0.0" green="0.1333333333" blue="0.25098039220000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                            <variation key="heightClass=regular-widthClass=compact" layoutMarginsFollowReadableWidth="YES"/>
                        </label>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="6KG-IA-18I">
                            <rect key="frame" x="31" y="813" width="350" height="49"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <color key="backgroundColor" red="0.0" green="0.1333333333" blue="0.25098039220000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="24"/>
                            <state key="normal" title="Login">
                                <color key="titleColor" red="0.50980392159999999" green="0.44705882349999998" blue="0.31372549020000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            </state>
                        </button>
                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" layoutMarginsFollowReadableWidth="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Email" minimumFontSize="17" clearButtonMode="whileEditing" id="meL-FW-06U">
                            <rect key="frame" x="31" y="431" width="350" height="34"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <color key="tintColor" red="0.0" green="0.1333333333" blue="0.25098039220000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <edgeInsets key="layoutMargins" top="8" left="8" bottom="8" right="8"/>
                            <color key="textColor" red="0.0" green="0.1333333333" blue="0.25098039220000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
                            <textInputTraits key="textInputTraits"/>
                        </textField>
                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" minimumFontSize="17" id="n7w-gQ-knJ">
                            <rect key="frame" x="32" y="473" width="350" height="30"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
                            <textInputTraits key="textInputTraits"/>
                        </textField>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                    <viewLayoutGuide key="safeArea" id="4yK-Ux-bpz"/>
                </view>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="WjO-MG-iyw" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="62.318840579710148" y="1017.8571428571428"/>
    </scene>

Извините, если это это действительно нубский вопрос, но я посмотрел онлайн и даже использовал шаблоны, чтобы помочь мне понять это, но я просто не могу! Ограничения и способы их добавления и использования множителей для меня не имеют смысла. Если вид был изображением, я просто хочу, чтобы его перетаскивали из угла, чтобы изменить размер по горизонтали и вертикали, но оставить все элементы в одном и том же относительном месте (элемент внизу на SE должен быть внизу на Pro Max). Спасибо!

1 Ответ

1 голос
/ 21 января 2020
Элемент

внизу на SE должен быть внизу на Pro Max

Хорошо, давайте рассмотрим это в качестве примера.

Вы можете использовать автоматическое расположение. В этом случае этот элемент нуждается в ограничении от его основания до основания его суперпредставления. Это заботится о его вертикальном положении. Также необходимо указать достаточно ограничений, чтобы определить его размер и горизонтальное положение.

В качестве альтернативы вы можете использовать авторазмер. В этом случае вам нужны распорки внизу и справа или слева.

...