Collection view looks fine when in portrait mode. But when it landscape mode the cells do not rearrange .. they remain in the same place.
I have added autolayout so that the collection view stretches to fill the screen and the collection view has a constant height constraint.
My view hierarchy is like this
View ->ScrollView->ContentView |--> Problematic collection view (one above notifications label) | |-> Tableview (one after after the notifications label) | |->Collection view (black space on top)
The code for the collection view is
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;}
-(NSInteger)collectionView:(UICollectionView *)collectionView
numberOfItemsInSection:(NSInteger)section
{
return 14;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
if (collectionView==self.offerCollectionView) {
sliderCollectionInHomeScreen *myCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"reuseIdForSlider"
forIndexPath:indexPath];
myCell.labelForShopName.text = [[self.arrayForOfferSlider objectAtIndex:indexPath.row] objectForKey:@"shop_name"];
myCell.labelForOfferName.text = [[self.arrayForOfferSlider objectAtIndex:indexPath.row] objectForKey:@"offer_title"];
myCell.offerImage.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[[self.arrayForOfferSlider objectAtIndex:indexPath.row] objectForKey:@"img_url"]]]];
;
return myCell;
}
I don't know if this is correct . But this has worked for me for the time being
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrient{
//[self.categoryCollectionView reloadData];
UICollectionViewFlowLayout * lay =[[UICollectionViewFlowLayout alloc] init];
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) {
[lay setScrollDirection:UICollectionViewScrollDirectionVertical];
}
else{
[lay setScrollDirection:UICollectionViewScrollDirectionHorizontal];
}
[self.CollectionView setCollectionViewLayout:lay];
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.