В Xcode 5 я смог перетащить UIView
в UITableView
в IB, чтобы создать заголовок. Однако в Xcode 6 IB не позволит мне сбросить его внутрь. Нет ли способа создать заголовок таблицы в IB больше?
Xcode 6 Добавление таблицыHeaderView в IB
Ответ 1
Вы просто перетащите UIView
в верхнюю часть таблицы (над текстом "Prototype cells" ) и удерживайте ее там. Индикатор падения меняется на одну горизонтальную линию с небольшим кругом на обоих концах. Когда вы его отбрасываете, заголовок загорается.
Вы можете сделать подобное внизу, чтобы сделать нижний колонтитул.
Для контроллера табличного представления в раскадровке:
Для представления таблицы в xib:
Ответ 2
Щелкните правой кнопкой мыши файл XIB и выберите "Открыть как", выберите "Исходный код"
Найдите XML-элемент tableview table и замените его на
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="YCz-1P-cVv">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<view key="tableHeaderView" contentMode="scaleToFill" id="vv3-pk-N2N">
<rect key="frame" x="0.0" y="0.0" width="320" height="156"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="yho-bJ-IzF">
<rect key="frame" x="0.0" y="25" width="320" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</tableView>
Сохраните и откройте XIB с помощью документа XIB Interface Builder.
Ответ 3
Я думаю, вы должны добавить заголовок и нижний колонтитул таблицы по исходному коду. сначала щелкните правой кнопкой мыши на IB и откройте в качестве исходного кода, затем поставьте ниже код
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="MZF-la-Fpw">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<view key="tableHeaderView" contentMode="scaleToFill" id="IDM-OR-d2g">
<rect key="frame" x="0.0" y="0.0" width="320" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<view key="tableFooterView" contentMode="scaleToFill" id="Q4z-o4-2rB">
<rect key="frame" x="0.0" y="518" width="320" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<connections>
<outlet property="dataSource" destination="-1" id="guW-ch-dgt"/>
<outlet property="delegate" destination="-1" id="j1u-5q-dsq"/>
</connections>
</tableView>
Ответ 4
То, что я закончил (отлично работало), состояло в том, чтобы скопировать уже существующий UITableView
с заголовком из другого NIB, который я ранее установил с Xcode 5. Затем я просто удалил все остальное из этой таблицы, кроме заголовка, Я мог бы правильно настроить его. Однако этот трюк будет работать, только если вы настроили таблицу с заголовком в Xcode 5 раньше. Если вы работаете с новым проектом Xcode 6, у меня все еще нет решения.