美文网首页
关于屏幕旋转中 UICollectionViewFlowLayo

关于屏幕旋转中 UICollectionViewFlowLayo

作者: 哈么么茶 | 来源:发表于2016-04-19 00:33 被阅读1474次

遇到坑了。

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval

在这个过期方法中,调整横竖屏 UICollectionView适配,其实就是间接调整Cell上下左右之间间距。在调试竖屏的时候死活只有一列。代码如下,只是把interitemSpacing这个值改小了一点点,猜想如果是正好的话系统计算的时候,会判断超出范围,只返回一列。

CGFloat interitemSpacing = (totalWidth - columns * layout.itemSize.width) / (columns + 1) / 1.1;


- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    
    [self setupLayout:self.view.width orientation:self.interfaceOrientation];
}

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
#warning 这里要注意:由于是即将旋转,最后的宽度就是现在的高度
    // 总宽度
    
      CGFloat  totalWidth = self.view.height;
    [self setupLayout:totalWidth orientation:toInterfaceOrientation];
}

/**
 *  调整布局
 *
 *  @param totalWidth 总宽度
 *  @param orientation 显示的方向
 */
- (void)setupLayout:(CGFloat)totalWidth orientation:(UIInterfaceOrientation)orientation
{
    //    self.collectionViewLayout == self.collectionView.collectionViewLayout;
    // 总列数
    int columns = UIInterfaceOrientationIsPortrait(orientation) ? 2 : 3;
    
    UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionViewLayout;
    // 每一行的最小间距
    CGFloat lineSpacing = 25;
    // 每一列的最小间距
    CGFloat interitemSpacing = (totalWidth - columns * layout.itemSize.width) / (columns + 1) / 1.1;
    
    layout.minimumInteritemSpacing = interitemSpacing;
    layout.minimumLineSpacing = lineSpacing;
    // 设置cell与CollectionView边缘的间距
    layout.sectionInset = UIEdgeInsetsMake(lineSpacing, interitemSpacing, lineSpacing, interitemSpacing);
}```



图片如下:

![屏幕快照 2016-04-19 上午12.21.08.png](https://img.haomeiwen.com/i1433768/367efb03ff1b2723.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • 关于屏幕旋转中 UICollectionViewFlowLayo

    遇到坑了。 -(void)willRotateToInterfaceOrientation:(UIInterfac...

  • 关于屏幕旋转

    重新整理了下老博客需求:全局主要是竖屏 个别界面需要横屏 一.前往TARGETS 这边如果是做的通用版 需要把 U...

  • 关于IOS屏幕旋转的问题

    IOS 开发中,屏幕旋转是比较蛋疼的。网络上有很多的关于屏幕旋转的文章,都比较碎片,而且有些做法还很暴力,并且在应...

  • 关于iOS屏幕旋转

    在iOS开发中,最常见的屏幕旋转方案: 取消Device Orientation的选择按钮取消选中 在appDel...

  • 屏幕旋转和弹出框

    iOS中控制屏幕旋转相关方法 shouldAutorotate:是否支持屏幕旋转 alertView:clicke...

  • 关于IOS中的屏幕部分旋转

    在做开发的时候经常碰到个别页面需要横屏的需求,比如播放视频之类的。以前本人的习惯是把屏幕自动旋转关掉,所以大部分时...

  • iOS屏幕旋转中的坑

    屏幕旋转是个坑 最近做的项目中有不少地方遇到了需要旋转屏幕的地方,在屏幕旋转的大坑里挣扎了一番,发现网上很多关于屏...

  • SKD常见错误

    屏幕旋转相关 屏幕不旋转或点击相册崩溃 查看AppDelegate中是否设置如下方法: 如果发生旋转时崩溃 查看 ...

  • iOS之屏幕旋转

    检测屏幕旋转:视图控制器本身能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写几个方法: 视图控制器中的方法: 视图...

  • iOS 关于屏幕旋转问题

    关于屏幕旋转需要理解两个概念设备方向(UIDeviceOrientation)和屏幕方向(UIInterfaceO...

网友评论

      本文标题:关于屏幕旋转中 UICollectionViewFlowLayo

      本文链接:https://www.haomeiwen.com/subject/vcialttx.html