<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      UICollectionView 03 - 卡片式布局篇

      •  初始化操作(prepareLayou)

        - (void)prepareLayout {
            //設置每個item的大小  這個屬性最好在控制器中設置
            self.itemSize = CGSizeMake(150, 150);
            //設置滾動方向
            self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
            //設置內邊距
            CGFloat insert =(self.collectionView.frame.size.width-self.itemSize.width)/2;
            self.sectionInset =UIEdgeInsetsMake(0, insert, 0, insert);
            //設置每行的最小間距
            self.minimumLineSpacing = 50.0;
        }
      • item(滑停居中)

         1.只要手一松開就會調用

         2.這個方法的返回值,就決定了CollectionView停止滾動時的偏移量

         3.proposedContentOffset這個是最終的 偏移量的值 但是實際的情況還是要根據返回值來定

         4.velocity  是滾動速率  有個x和y 如果x有值 說明x上有速度

         5.如果y有值 說明y上又速度 還可以通過x或者y的正負來判斷是左還是右(上還是下滑動)  有時候會有用

        -(CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity{
            //計算出 最終顯示的矩形框
            CGRect rect;
            rect.origin.x =proposedContentOffset.x;
            rect.origin.y=0;
            rect.size=self.collectionView.frame.size;
            NSArray * array = [super layoutAttributesForElementsInRect:rect];
        
            // 計算CollectionView最中心點的x值 這里要求 最終的 要考慮慣性
            CGFloat centerX = self.collectionView.frame.size.width /2+ proposedContentOffset.x;
            //存放的最小間距
            CGFloat minDelta = MAXFLOAT;
            for (UICollectionViewLayoutAttributes * attrs in array) {
                if (ABS(minDelta)>ABS(attrs.center.x-centerX)) {
                    minDelta=attrs.center.x-centerX;
                }
            }
            // 修改原有的偏移量
            proposedContentOffset.x+=minDelta;
            //如果返回的時zero 那個滑動停止后 就會立刻回到原地
            return proposedContentOffset;
        }
      • item(縮放)

         1.這個方法的返回值是一個數組(數組里存放在rect范圍內所有元素的布局屬性)

         2.這個方法的返回值  決定了rect范圍內所有元素的排布(frame)

        - (NSArray<__kindof UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect {
           //獲得super已經計算好的布局屬性 只有線性布局才能使用
               NSArray * array = [super layoutAttributesForElementsInRect:rect];
               //計算CollectionView最中心的x值
           #warning 特別注意:
               CGFloat centetX = self.collectionView.contentOffset.x + self.collectionView.frame.size.width/2;
               for (UICollectionViewLayoutAttributes * attrs in array) {
                //CGFloat scale = arc4random_uniform(100)/100.0;
                  //attrs.indexPath.item 表示 這個attrs對應的cell的位置
                   NSLog(@" 第%zdcell--距離:%.1f",attrs.indexPath.item ,attrs.center.x - centetX);
                   //cell的中心點x 和CollectionView最中心點的x值
                  CGFloat delta = ABS(attrs.center.x - centetX);
                   //根據間距值  計算cell的縮放的比例
                   //這里scale 必須要 小于1
                   CGFloat scale = 1 - delta/self.collectionView.frame.size.width;
                   //設置縮放比例
                   attrs.transform=CGAffineTransformMakeScale(scale, scale);
               }
               return array;
        }
      • 劃出范圍刷新布局

         多次調用 只要滑出范圍就會 調用

         CollectionView的顯示范圍發生改變的時候,是否重新發生布局

         一旦重新刷新 布局,就會重新調用 

         · layoutAttributesForElementsInRect:方法

         · preparelayout方法

        -(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {
            return YES;
        }
      • demo
        卡片式布局篇  

      posted on 2020-07-30 14:07  梁飛宇  閱讀(1494)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 呼玛县| 97人妻中文字幕总站| 国产欧美精品一区二区三区四区| 国内精品伊人久久久久av| 国产乱码精品一区二区三| 女同久久一区二区三区| 中文字幕理伦午夜福利片| 青草99在线免费观看| 国产美熟女乱又伦AV果冻传媒| 亚洲国产无线乱码在线观看| 阳信县| 日韩精品久久久肉伦网站| 久久影院午夜伦手机不四虎卡| 子长县| 蜜桃一区二区三区免费看| 亚洲区欧美区综合区自拍区| 亚洲国产欧美在线人成大黄瓜| 凸凹人妻人人澡人人添| 九九热在线精品免费视频| 国产一区日韩二区三区| 固安县| 亚洲a免费| 一本之道高清乱码少妇 | 精品一卡2卡三卡4卡乱码精品视频| 国产成人午夜福利精品| 成人特黄特色毛片免费看| 亚洲精品中文字幕尤物综合| 蜜桃av亚洲精品一区二区| 亚洲精品一区二区区别| 久久国产成人高清精品亚洲| 亚洲 日韩 国产 制服 在线| 亚洲情色av一区二区| 亚洲中文字幕无码一久久区| 亚洲鸥美日韩精品久久| 日本视频一区二区三区1| 少妇性l交大片| 深夜福利啪啪片| 玩弄放荡人妻少妇系列| 中文区中文字幕免费看| 桃花岛亚洲成在人线AV| 伊伊人成亚洲综合人网7777|