Как сохранить ячейку заголовка в ячейках таблицы в Swift 2.0
Я пытаюсь создать табличное представление, которое запускает заголовок в середине таблицы, а затем может быть прокручено с добавленными ячейками TableView вверху, а затем останавливается, а затем ячейки tableview могут просто прокручивать "под". Я получил заголовок, который находится в середине таблицы, но таблицы TableView просто прокручиваются поверх него, и заголовок действительно не прокручивается вверх. он просто остается там, где он есть. Я хочу, чтобы заголовок мог перемещаться по мере прокрутки списка, а затем останавливается, когда он достигает вершины списка, а затем его только ячейки таблицы, которые потом перемещаются.
Я использую последнюю версию XCode
Ответы
Ответ 1
ПЕРЕЙДИТЕ К РАССКАЗУ> ВЫБРАТЬ ВИД> ВЫБРАТЬ ТАБЛИЦУ> ИНСПЕКТОР ИМУЩЕСТВА> СТИЛЬ ИЗМЕНЕНИЯ В ГРУППОВАННУЮ ИЗ PLAIN
Не забудьте разобраться с нижним колонтитулом. В режиме Groupped появится нижний колонтитул и упорядочит фон или другие свойства. Они изменятся.
см. изображение:
![enter image description here]()
Ответ 2
Вы можете сделать это, используя разделы. Если я правильно понял ваш вопрос, что вы хотите сделать, вам нужно отобразить заголовок посередине экрана, имея несколько ячеек над заголовком и некоторые ячейки под заголовком, а когда вы прокручиваете таблицуView, ваш заголовок должен прокручиваться наверху, и когда он достигает вершины, вы хотите, чтобы ваш заголовок находился наверху, а ячейки должны прокручиваться под заголовком.
Чтобы сделать это, верните два раздела из источника данных
func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
return 2
}
И в источнике данных возвращаются условные ячейки
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
If(section == 1) {
return <Return number of cell you want to display above header>
} else {
return <Return number of cell you want to display below header>
}
}
Затем переопределите делегат
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
if(section == 0) {
return nil //As you do not have to display header in 0th section, return nil
} else {
return <Return your header view>
//You can design your header view inside tableView as you design cell normally, set identifier to it and dequeue cell/headerView as:
//However this may result in unexpected behavior since this is not how the tableview expects you to use the cells.
let reuseIdentifier : String!
reuseIdentifier = String(format: "HeaderCell")
let headerView = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier, forIndexPath: NSIndexPath(forRow: 0, inSection: 0))
return headerView
}
}
Установите условную высоту как
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
{
if(section == 0) {
return 0
} else {
return <Return your header view height>
}
}
Что мы делаем здесь, мы показываем заголовок во втором разделе, который будет иметь некоторую ячейку, поэтому вы увидите некоторые ячейки в таблицеView без заголовка, а ниже этих ячеек вы увидите headerView с некоторыми ячейками и когда вы прокрутите таблицу TableView вверху заголовка будет прокручиваться с помощью ячейки, пока она не достигнет вершины.
Надеюсь, что это поможет вам.