Xcode 6 Добавление таблицыHeaderView в IB

В Xcode 5 я смог перетащить UIView в UITableView в IB, чтобы создать заголовок. Однако в Xcode 6 IB не позволит мне сбросить его внутрь. Нет ли способа создать заголовок таблицы в IB больше?

Ответ 1

Вы просто перетащите UIView в верхнюю часть таблицы (над текстом "Prototype cells" ) и удерживайте ее там. Индикатор падения меняется на одну горизонтальную линию с небольшим кругом на обоих концах. Когда вы его отбрасываете, заголовок загорается.

Вы можете сделать подобное внизу, чтобы сделать нижний колонтитул.

Для контроллера табличного представления в раскадровке:

enter image description here

Для представления таблицы в xib:

enter image description here

Ответ 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, у меня все еще нет решения.