Xcode 4.5:无法在Interface Builder中设置根视图的自动调整大小掩码

3

我对Xcode 4.5中出现的一个bug感到困惑。在Interface Builder中,我无法设置新创建的UIViewController的根视图的自动调整大小属性(autoresizingMask)。以下是重现此问题的步骤:

  • 创建一个新的Storyboard
  • 在文件检查器(File inspector)中取消勾选“使用自动布局”(Use Autolayout)
  • 选择默认场景的根视图(root view)
  • 进入大小(Size)检查器(Inspector)
  • 在“自适应大小”(Autosizing)对话框中,弹簧线(springs)是虚线,灰色,无法点击(支撑线(struts)正常工作)。

如果我删除现有的视图,并从对象库(Object Library)拖动一个新视图,新视图将启用autosizingMask属性(无法禁用)。

我在两个项目上都遇到了这个问题,但在新创建的项目上没有出现。我错过了什么?什么会触发这种行为?

这是一个测试storyboard的XML。第一个ViewController,带有storyboardIdentifier="springsWorking",是我编辑并删除原始视图的那个,第二个ViewController,带有storyboardIdentifier="default",是默认的ViewController。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2844" systemVersion="12C60" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="KEy-1l-Qqy">
<dependencies>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1930"/>
</dependencies>
<scenes>
    <!--View Controller-->
    <scene sceneID="dwh-DZ-gCp">
        <objects>
            <viewController storyboardIdentifier="springsWorking" id="KEy-1l-Qqy" sceneMemberID="viewController">
                <view key="view" contentMode="scaleToFill" id="ngZ-jh-RR4">
                    <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                </view>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="jow-h4-M4B" userLabel="First Responder" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="-428" y="-327"/>
    </scene>
    <!--View Controller-->
    <scene sceneID="445-Ak-YxL">
        <objects>
            <viewController storyboardIdentifier="default" id="ZA8-km-Ecn" sceneMemberID="viewController">
                <view key="view" contentMode="scaleToFill" id="lRF-Uf-5lh">
                    <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                </view>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="fZf-TK-JQE" userLabel="First Responder" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="760" y="-313"/>
    </scene>
</scenes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
    <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
    <simulatedOrientationMetrics key="orientation"/>
    <simulatedScreenMetrics key="destination"/>
</simulatedMetricsContainer>

1个回答

11
在“属性检查器”(右侧面板;图标看起来像滑块)中,在“模拟度量标准”下打开“大小”弹出窗口并选择“自由形式”。这将解锁那些控件。(否则,它会将大小与全屏匹配,因为它认为这是你想要的。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接