2014-07-29 4 views
1

Я положил этикетки на свою раскадровку, установил все ограничения. Теперь я должен использовать UIView - есть ли способ изменить тип элемента с метки на UIView? Конструктор интерфейса, похоже, не поддерживает его: нужно ли удалить метку, добавить новое представление и снова установить все ограничения?Возможно изменение типа элемента на раскадровке?

ответ

5

Поскольку интерфейс-конструктор, похоже, не поддерживает его напрямую, я думаю, вам нужно самостоятельно изменить код раскадровки. Откройте его с точки зрения исходного кода (правой кнопкой мыши -> Open As) и искать ваши этикетки, похожие на это:

<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWL-BD-gl8"> 
    <rect key="frame" x="20" y="300" width="42" height="21"/> 
    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 
    <constraints> 
     <constraint firstAttribute="width" constant="42" id="jAd-Xg-3tc"/> 
     <constraint firstAttribute="height" constant="21" id="zeN-Ga-a3U"/> 
    </constraints> 
    <fontDescription key="fontDescription" type="system" pointSize="17"/> 
    <nil key="highlightedColor"/> 
</label> 

Тогда вы можете изменить <label и </label> к <view и </view>, и он станет UIView.

Возможно, некоторые атрибуты больше не нужны (например, <fontDescription>), возможно, вы могли бы добавить UIView в Interface Builder, посмотреть, как он закодирован в XML и посмотреть, какие свойства не нужны для их удаления (просто не забудьте изменить идентификатор ярлыков, однажды измененных на UIViews, поскольку ограничения работают с использованием этого ID).

Надеюсь, это поможет!

+0

Это работает только для ограничений по размеру, расстояние между ними (например, вертикальное расстояние) не может быть скопировано таким образом. – iOSdev

+0

@halakala Правда, я отредактировал ответ другим способом, который должен работать. –

+0

Ты легенда! Я думаю, что чаще использовать редактор исходного кода! –

Смежные вопросы