Как удалить лишнее пространство в верхней части табличного представления на iPhone X с помощью Objective C iOS

Я уже разработал приложение на Objective C, которое отлично работает на всех мобильных устройствах iPhone. Но когда я запускаю это приложение в симуляторе iPhone X, я не знаю, как получить дополнительное пространство (около 20-22 пикселей) в верхней части UITableView. Я пробовал все эти решения, но ни одно из приведенных ниже мне не помогло:

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

self.edgesForExtendedLayout = UIRectEdgeNone;

[tblProducts setSectionHeaderHeight:0];

self.automaticallyAdjustsScrollViewInsets = NO;

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return CGFLOAT_MIN;
}

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return CGFLOAT_MIN;
}

Я знаю, что это возможно, установив содержимое моего табличного представления, например:

tblProducts.contentInset = UIEdgeInsetsMake(-30, 0, 0, 0);

Есть ли другое решение этой проблемы для iPhone X?

Я проверил рамку представления таблицы в ViewDidLoad, она (0, 64, WIDTH, HEIGHT), есть ли проблемы со строкой состояния?

Пожалуйста, предложите мне. Заранее спасибо!


person Anand Gautam    schedule 09.10.2017    source источник
comment
Вы установили правильный экран запуска iPhone x   -  person iPatel    schedule 09.10.2017
comment
@iPatel Нет, я не устанавливал экран запуска iPhone x.   -  person Anand Gautam    schedule 09.10.2017
comment
Пожалуйста, установите сначала 1125px × 2436px   -  person iPatel    schedule 09.10.2017
comment
Хорошо сделано @iPatel   -  person Anand Gautam    schedule 09.10.2017


Ответы (3)


Вы можете попробовать установить для свойства contentInsetAdjustmentBehavior значение Never.

В Swift у меня есть это в UICollectionView:

if #available(iOS 11.0, *) {
    collectionView.contentInsetAdjustmentBehavior = .never
}

В Objective-C то же самое относится к UITableView, установите его так:

if (@available(iOS 11.0, *)) {
    [_tableView setContentInsetAdjustmentBehavior: UIScrollViewContentInsetAdjustmentNever];
}
person Glenn Posadas    schedule 09.10.2017

Если кто-то ищет ответ с помощью раскадровки, выберите свой UITableView в раскадровке и просто измените вставку содержимого на никогда, как показано в ссылке ниже.

введите описание изображения здесь

person Devang Tandel    schedule 11.10.2017
comment
@HarshadPatel - рад, что это помогло. Добро пожаловать - person Devang Tandel; 17.07.2018

Вы можете установить сгруппированный стиль таблицы, чтобы он удалял лишнее пространство, или вы можете установить одно свойство для вашего Viewcontroller.

self.extendedLayoutIncludesOpaqueBars = истина

person ankita kotadiya    schedule 17.09.2019