xamarin自动布局不起作用-它不';当它';完全受限制

xamarin自动布局不起作用-它不';当它';完全受限制,xamarin,xamarin.ios,xamarin-studio,Xamarin,Xamarin.ios,Xamarin Studio,我正在Xamarin.iOS项目中使用故事板中的自动布局。 为什么当我从Iphone4切换到iPhone5或iPhone6等时,我的限制没有得到尊重 我尝试了各种模式。。。我还尝试在通用模式下进行设计,当我在Xamarin Studio-designer中切换到不同的渲染模式时,标签、按钮将保持在屏幕上的固定位置,并将其关闭,显示为橙色 自动布局,尺寸分类已选中!并且控件是完全约束的,即设置了x、y、高度、宽度等 我还观看了这段关于AutoLAyout的简短介绍视频,但我没有得到相同的结果: 我

我正在Xamarin.iOS项目中使用故事板中的自动布局。 为什么当我从Iphone4切换到iPhone5或iPhone6等时,我的限制没有得到尊重

我尝试了各种模式。。。我还尝试在通用模式下进行设计,当我在Xamarin Studio-designer中切换到不同的渲染模式时,标签、按钮将保持在屏幕上的固定位置,并将其关闭,显示为橙色

自动布局,尺寸分类已选中!并且控件是完全约束的,即设置了x、y、高度、宽度等

我还观看了这段关于AutoLAyout的简短介绍视频,但我没有得到相同的结果:

我的第二期是: 当我在属性中进行更改(例如,从21到30的高度)并按下“基于约束更新帧”时,我希望设计器上的高度将调整为30。但是当我点击“更新帧…”按钮时,属性值被设置回21。。。我想这应该是另一种方式

有什么建议吗

Xamarin工作室
版本6.1.3(版本19)

切换到Iphone6

切换到iPhone4

更新(添加情节提要代码)


根据我的经验,iOS设计器可能会有很多问题,尤其是界面生成器更易于使用

在情节提要上单击鼠标右键
使用打开
Xcode界面生成器

从您发布的代码来看,似乎只设置了顶部标签的约束,其他所有内容都不存在。请参见您发布的代码界面生成器的屏幕截图:

我想在interface builder中添加如下约束:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r" launchScreen="YES">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="tne-QT-ifu">
            <objects>
                <viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hi there this is a label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3" translatesAutoresizingMaskIntoConstraints="NO">
                                <rect key="frame" x="225" y="290" width="254" height="21"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                                <constraints>
                                    <constraint id="10" firstItem="3" firstAttribute="height" constant="21"/>
                                    <constraint id="13" firstItem="3" firstAttribute="width" constant="254"/>
                                </constraints>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="one more label is here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="4" translatesAutoresizingMaskIntoConstraints="NO" fixedFrame="YES">
                                <rect key="frame" x="225" y="344" width="231" height="21"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <constraints>
                            <constraint id="9" firstItem="3" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" constant="225"/>
                            <constraint id="12" firstItem="3" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" constant="270"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="0.0" y="0.0"/>
        </scene>
    </scenes>
</document>

通常,如果您试图适应其他屏幕,您不会将前导设置为常数225,因为其他设备将具有不同的屏幕大小,并且可能会脱离屏幕。因此,最好尝试相对于视图的垂直或水平中心定位,或者使用常数中的比率


另外,要使用xcode interface builder默认打开故事板和xib,您可以使用

发布示例项目吗?如果不直接查看storyboard@BytesGuy:我发布了代码和打印屏幕。。。因此,我希望布局应该适合Iphone4/5/6等,如果没有大的努力,也可能适合IPAD。。。因此,我选择在通用模式下进行设计,但正如您所看到的,它不尊重约束@你好。你修好了吗?我记得,我试过Xamarin.iOS,自动布局(autolayout)工作得很好(一年前)。但是现在,对于最新的SDK/IDE,我也有同样的问题,约束是不正确的(Xamarin.iOS设计器上的“+”按钮增加了四个约束)有什么想法吗?谢谢你提供的信息,你的反馈很有帮助。。。因为我是Xamarin.iOS的新手。我需要用XCODE设计我的屏幕吗。。。?最佳实践是什么?我建议用Xcode设计它们。就autolayout xcode的功能而言,它比Xamarin iOS设计器稍微高级一些,但这可能会有所改变,因为我相信Xamarin会随着时间的推移改进设计器。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r" launchScreen="YES">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="tne-QT-ifu">
            <objects>
                <viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hi there this is a label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3" translatesAutoresizingMaskIntoConstraints="NO">
                                <rect key="frame" x="225" y="290" width="254" height="21"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                                <constraints>
                                    <constraint id="10" firstItem="3" firstAttribute="height" constant="21"/>
                                    <constraint id="13" firstItem="3" firstAttribute="width" constant="254"/>
                                </constraints>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="one more label is here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="4" translatesAutoresizingMaskIntoConstraints="NO" fixedFrame="YES">
                                <rect key="frame" x="225" y="344" width="231" height="21"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <constraints>
                            <constraint id="9" firstItem="3" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" constant="225"/>
                            <constraint id="12" firstItem="3" firstAttribute="top" secondItem="y3c-jy-aDJ" secondAttribute="bottom" constant="270"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="0.0" y="0.0"/>
        </scene>
    </scenes>
</document>