Подтвердить что ты не робот

Почему дополнительное пространство находится на вершине UITableView - просто

Я собираю некоторые программы для iOS и пытаюсь поместить UITableView в раскадровку. К сожалению, я пытаюсь помещать контент в верхнюю часть представления, но он помещается в некоторое пространство. Я попытался настроить значения в инспекторе для режима просмотра → , но это, похоже, не имеет никакого эффекта.

Я сделал зеленый фон и поместил цвет рамки, чтобы показать проблему. Я не разработчик iOS, но я бы предположил, что это самое простое решение, а не что-то сложное. Как сделать содержимое табличного представления синим с верхним? Я видел это Почему в верхней части моего UITableView добавлено дополнительное дополнение со стилем UITableViewStyleGrouped в iOS7, но не уверен, связано ли это.

спасибо для любой помощи

enter image description here


Изменить # 1

Обновлено с изменениями и снимками экрана для этого представления таблицы

enter image description here

enter image description here

enter image description here

4b9b3361

Ответ 1

Да, этот вопрос очень важен. UITableViewStyleGrouped делит каждый раздел на "группу", вставляя это дополнительное дополнение... похожее на то, что оно делало pre-iOS7, но четкое, а не цветное по умолчанию, и только сверху, а не наоборот. Если вы не хотите заполнять по умолчанию, используйте UITableViewStylePlain.

В противном случае, если вам нужно сохранить стиль таким же, сделайте то, что этот другой опубликованный из этой ссылки рекомендовал и изменил вставку содержимого:

self.tableView.contentInset = UIEdgeInsetsMake(-36, 0, 0, 0);

Или сделайте то, что предложил этот плакат, и установите tableHeaderView height на .-1, т.е. почти 0:

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];

Ответ 2

Перейдите к инспектору атрибутов контроллера просмотра, выбрав xib или контроллер в Storyboard. Снимите флажок Настроить прокрутки в в Макет. Это решит проблему enter image description here

Ответ 3

В Swift вам просто нужно установить для свойства ниже значение false.

self.automaticallyAdjustsScrollViewInsets = false

Ответ 4

Это очень легко и отлично работает для меня. Выберите контроллер в Story Board, в который вы разместили UITableView.

YouStoryboard.storyboard > YouViewController > Инспектор атрибутов > Снимите флажок - Отрегулируйте вставки прокрутки.

Убедитесь, что вы выбрали UIViewController, а не UITableView.

Ответ 5

Swift:

override func viewWillAppear(animated: Bool) {
        self.edgesForExtendedLayout = UIRectEdge.None

       OR

self.moduleListTableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0);

       OR

 self.automaticallyAdjustsScrollViewInsets = false
        }

Ответ 6

попробуйте это....

self.tableView.contentInset = UIEdgeInsetsMake( 20, 20 , 0, 0)

Ответ 7

в swift 3.0, надеюсь, вам помогут

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return CGFloat.leastNormalMagnitude
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return CGFloat.leastNormalMagnitude
}

Ответ 8

Причина этой проблемы: -

  • UITableView не любит иметь заголовок с высотой 0.0. Если то, что вы пытаетесь сделать, это иметь заголовок с высотой 0, вы можете перейти к решению.
  • даже если позже вы назначаете высоту не 0,0 для своего заголовка, UITableView не хочет, чтобы сначала был назначен заголовок с высотой 0.0.

В ViewDidLoad: -

self.edgesForExtendedLayout = UIRectEdge.None

self.automaticallyAdjustsScrollViewInsets = false

Нет необходимости в чем-то вроде этого: -

self.myTableview.contentInset = UIEdgeInsetsMake(-56, 0, 0, 0)

В heightForHeaderInSection делегат: -

if section == 0
    {
        return 1
    }
    else
    {
        return 40; // your other headers height value
    }

В viewForHeaderInSection делегат: -

if section == 0 
{  
   // Note CGFloat.min for swift
   // For Objective-c CGFLOAT_MIN 
   let headerView = UIView.init(frame: CGRectMake(0.0, 0.0, self.myShaadiTableview.bounds.size.width, CGFloat.min)) 
   return headerView
}
else
{ 
   // Construct your other headers here 
}

Ответ 9

Вот как это можно легко устранить с помощью раскадровки:

Выберите "Просмотр таблицы" > "Инспектор размеров" > "Вставки содержимого: никогда"