设备方向更改时如何重新排列集合视图单元格

Posted

技术标签:

【中文标题】设备方向更改时如何重新排列集合视图单元格【英文标题】:How to rearrange collection view cell when device orientation changes 【发布时间】:2014-10-16 06:46:56 【问题描述】:

在纵向模式下,收藏视图看起来不错。但是当它是横向模式时,单元格不会重新排列......它们保持在同一个地方。

我添加了自动布局,以便集合视图伸展以填满屏幕,并且集合视图具有恒定的高度约束。

我的视图层次结构是这样的

View ->ScrollView->ContentView |--> 有问题的集合视图(通知标签上方的一个) | |-> Tableview(在通知标签之后) | |->集合视图(顶部的黑色空间)

集合视图的代码是

-(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;

【问题讨论】:

分享一些代码,它是否给出任何错误或警告? 它没有显示任何错误。 分享一些收藏视图的代码。 【参考方案1】:

我不知道这是否正确。但这暂时对我有用

-(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];



【讨论】:

以上是关于设备方向更改时如何重新排列集合视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

重新调整尺寸时更改设计集合视图单元格

设备方向更改时如何更改 UiCollectionView 单元格大小?

嵌套集合视图单元格未在方向更改时调整大小

如何在 iOS 中同时为单元格和表格更改设置动画?

如何重新排列 UILocalNotification 表格视图的单元格?

如何通过单击更改集合视图单元格中的标签颜色