我在iOS启动故事板上有以下代码:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505"
targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES"
useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="LaunchIcon" translatesAutoresizingMaskIntoConstraints="NO" id="1864">
<rect key="frame" x="131" y="292" width="152" height="152"/>
<constraints>
<constraint firstAttribute="width" constant="152" id="2074"/>
<constraint firstAttribute="height" constant="152" id="2075"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="1864" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="2284"/>
<constraint firstAttribute="centerY" secondItem="1864" secondAttribute="centerY" id="2285"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
代码似乎seems肿,充满ID和其他可能我不需要的东西,因为它只需要在中心显示一个图像即可。
有人可以给我一些有关如何清理此代码以及删除的建议。
答案 0 :(得分:5)
情节提要格式是一种人类可读的格式(XML
),但尚未打开。与XAML
不同,您可以在没有设计师的情况下定义UI布局,而Storyboard则必须由Storyboard设计器(随Xcode
一起提供)创建。我不建议在文本/ xml编辑器中手动编辑Storyboard文件,因为一旦打开文件,Storyboard设计者将覆盖它们。
您在内部看到的所有标识符都具有Apple
定义的内部情节提要格式,并且由情节提要设计者使用它来链接元素,容器和约束。
我同意情节提要在多团队成员环境中会带来较小的灵活性和很多挑战,因为它们只能在设计人员中进行编辑:
因此,您会不时看到开发人员切换到code-only
方法并通过创建所有控件和布局仅在源代码(Objective-C
或Swift
)中定义UI。以编程方式。