2015-01-29 3 views
4

У меня есть одна строка collectionview, которая прокручивает по горизонтали. Работает collectionview, но он отсекает вторую по последнюю ячейку (помечен оранжевым) и скрывает последнюю ячейку.iOS Horizontal CollectionView не прокручивается полностью

У меня есть 5 ячеек, каждая из размера 166x166. Я проверил contentsizeviewlayout, и его ширина равна 830, что является правильным, но я не могу прокрутить это далеко.

Вот настройки в раскадровке:

enter image description here

А вот код collectionview.

#pragma mark Collection View Methods 

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { 
    return 1; 
} 

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { 
    return [array count]; 
} 

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"FeaturedCell" forIndexPath:indexPath]; 

    UILabel *label = (UILabel *) [cell viewWithTag: 100]; 
    label.text = [array objectAtIndex:indexPath.row]; 

    [cell.layer setBorderWidth:2.0f]; 
    [cell.layer setBorderColor:[UIColor whiteColor].CGColor]; 

    return cell; 
} 
+0

Вы используете UICollectionView или UICollectionViewController? Если вы используете представление коллекции, возможно, часть его кадра заканчивается с экрана. –

+0

Я использую UICollectionView в ViewController –

ответ

2

Новый размер по умолчанию для IB - 600 точек. Если вы не используете автоматическую компоновку или другое средство для ограничения размеров, кадр будет выходить за пределы экрана и не будет виден. Если это происходит при ширине 320 пикселей, вы потеряете 240 точек, что, если ваши ячейки имеют 166 точек в ширину, означает, что вы теряете около 1 1/2 ячейки. О том, чего не хватает.

Удостоверьтесь, что вид коллекции имеет ограничение на конец с константой 0 на край супервизора (или другие средства для обеспечения соответствия размеров, например «равные» ширины для супервизора).

+0

Привет, Майкл Санд, спасибо за ответ, похоже, когда я привязываю задний край и передний край коллекции к надписи, он отображается правильно. Однако другие ограничения на моей странице, похоже, запутались. Есть ли причина, по которой это происходит? –

+0

Да, причина в том, что AutoLayout сосет. Ха-ха, серьезно что-то еще, вероятно, ограничено коллекциейView, проверьте оранжевую или красную стрелку на панели объектов слева от IB, чтобы узнать, что это такое, или выберите представление коллекции и посмотрите на ограничения на правильном инспекторе , под значком правителя. Если вы не можете идентифицировать проблему там, отметьте это как разрешенное и опубликуйте скриншоты на другой вопрос, я посмотрю, что AutoLayout серьезно хуже всего. –

+1

Да, AutoLayout кажется настоящей болью. Но спасибо за ответ. –