UICollectionView добавляет верхний предел
Я хочу поставить элемент управления UICollectionView, который показывает большие пальцы по горизонтали (только одна линия больших пальцев). По какой-то причине UICollectionView нажимает большие пальцы 44 пикселей вниз, поэтому высота "0" на самом деле "44". Я предполагаю, что это может быть добавление этого пространства для рассмотрения высоты панели навигации (я просто предполагаю). Поскольку мой UICollectionView находится только на части экрана, я не хочу этого поля. Есть ли способ удалить его?
6 ответов:
проблема может быть в вставках содержимого представления коллекции. Попробуйте добавить
self.automaticallyAdjustsScrollViewInsets = NO;
в поле зрения регулятораviewDidLoad
метод.
вы можете установить это в раскадровке.
убедитесь, что вы выбрали ViewController, а затем снимите флажок "настроить вставки прокрутки".
Я не проверял, что этот метод IB/Storyboard делает на iOS6, хотя. С помощью метода кода вам нужно проверить, что VC отвечает на метод:
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) { self.automaticallyAdjustsScrollViewInsets = NO; }
Я нашел, что добавление:
self.edgesForExtendedLayout = UIRectEdgeNone;
в контроллере вида я загружал UICollectionView в решении проблемы, поскольку я не мог получить принятый ответ на работу.
этот вопрос я нашел этот ответ можно найти здесь и обеспечивает чрезвычайно глубокое и интересное объяснение разницы между автоматически настроенными вставками прокрутки, расширенными макетами и краем для расширенных макетов.
стоит прочитать
может быть, вы можете попробовать заставить это значение в 0, используя макет потока делегатов представления коллекции:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { return UIEdgeInsetsMake(PADDING_TOP, PADDING_LEFT, PADDING_BOTTOM, PADDING_RIGHT); }
измените значение вашего отступа.
Swift 3:
сначала вы хотите установить viewControllers
automaticallyAdjustsScrollViewInsets
в false:self.automaticallyAdjustsScrollViewInsets = false
затем, вы должны быть в состоянии скорректировать краю вставки:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { //top, left, bottom, right return UIEdgeInsets(top: 10, left: 0, bottom: 0, right: 0) }