2015-02-04 3 views
0

При редактировании строк таблицы iOS путем прокрутки влево позиции заголовков разделов также перемещаются влево. Есть ли способ сохранить позицию просмотра заголовка раздела во время редактирования строк таблицы?Сохраните заголовок таблицы заголовка таблицы iOS при редактировании строк таблицы.

+0

Что вы имеете в виду? По умолчанию (в приложении «Мастер-детали») заголовки разделов не перемещаются, либо перетаскивая ячейки влево, либо переходя в состояние редактирования, нажав кнопку редактирования. –

+0

@MichaelSand Ой, действительно? Любой пример проекта, на который я могу взглянуть? –

+0

Мои результаты на https://www.dropbox.com/sh/53t52r9lp5defvl/AAD4gRnTOrLrkEIeTJoIUvK9a?dl=0. Просто создайте новый проект Xcode для Master-Detail. Чтобы дать ему разделы - Измените количество разделов на 3 - измените количество строк на self.objects.count/3 - заголовок заголовка в разделе для возврата [NSString stringWithFormat: @ "Раздел% li", (длинный) раздел ]; - и измените последнюю строку вставки нового объекта на [self.tableView reloadData]; // комментирование: [self.tableView insertRowsAtIndexPaths: @ [indexPath] withRowAnimation: UITableViewRowAnimationAutomatic]; –

ответ

0

Вы можете попробовать этот трюк, в каждом разделе есть строки, в которых есть пустой раздел раньше. Поэтому просто скройте заголовки разделов текущей строки, но покажите заголовок перед секцией. Поэтому, когда вы манипулируете текущей строкой, это не затрагивает предыдущий раздел.

+0

Или другой способ - создать заголовок заголовка раздела как обычную ячейку таблицы. Но я ищу простое решение. –

0

Проблема была в использовании UITableViewCell для viewForHeaderInSection вместо UITableViewHeaderFooterView. Использование UITableViewHeaderFooterView устраняет эту проблему. Большое спасибо @MichaelSand!

+0

Вы можете отметить мой ответ, как принято, чтобы закрыть вопрос. –

1

По умолчанию (в приложении «Мастер-детализация») заголовки разделов не перемещаются, либо прокручивая ячейки слева, либо переходя в состояние редактирования, нажав кнопку редактирования.

Чтобы увидеть это, создайте новый проект Xcode для Master-Detail. Быстрый способ дать ему разделы:

  1. Изменение numberOfSections в return 3

  2. Изменение numberOfRowsInSection в self.objects.count/3

  3. Изменить titleForHeaderInSection: вернуть [NSString stringWithFormat:@"Section %li", (long)section];

  4. Изменение последней строки вставки нового объект до [self.tableView reloadData]; //commenting: [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

Вы можете увидеть результат этого на dropbox.com/sh/53t52r9lp5defvl/AAD4gRnTOrLrkEIeTJoIUvK9a?dl=0. Поскольку это поведение по умолчанию, что-то еще должно быть причиной скольжения заголовков.

-1

В SWIFT2.0:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let headerView : UIView = UIView(frame: CGRectMake(0, 0, 704, 30)) //write frames as your requirement 

    headerView.backgroundColor = UIColor(red: 61/255, green: 133/255, blue: 167/255, alpha: 1) 

    let headerLabel: UILabel = UILabel() 
    headerLabel.frame = CGRectMake(0, 0,704, 30) 
    headerLabel.backgroundColor = UIColor.clearColor() 
    headerLabel.textAlignment = NSTextAlignment.Center 
    headerLabel.font = UIFont.boldSystemFontOfSize(17) 
    headerLabel.textColor = UIColor.whiteColor() 
    headerLabel.text = "Section Header" 
    headerView.addSubview(headerLabel) 

    return headerView 
} 
Смежные вопросы