91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

九宮格視圖的布局及展示(相冊選擇)

發布時間:2020-07-12 05:58:41 來源:網絡 閱讀:1436 作者:Jacksun2Coshine 欄目:開發技術

        上周一個朋友帶的項目出了點問題,招的ios開發人員在實現選取相冊圖片后用九宮格的樣式展示時遇到了瓶頸,花了將近2周都沒有解決。后來在跟我交流的過程中他把項目的圖片發給我看了下,看完我就笑了,這就只是個算法的問題,花點時間思考下基本就能解決的。廢話不多說,把之前完成的效果展示出來。

九宮格視圖的布局及展示(相冊選擇)

九宮格視圖的布局及展示(相冊選擇)

九宮格視圖的布局及展示(相冊選擇)

九宮格視圖的布局及展示(相冊選擇)

九宮格視圖的布局及展示(相冊選擇)

九宮格視圖的布局及展示(相冊選擇)

        以上是直接用手機截的圖,傳上來沒想到會這么大。其中圖片添加的功能是引入了一個第三方的庫,非常好用,跟qq上的圖片添加功能幾乎沒兩樣,庫的名字是ZLPhotoActionSheet。當然這都不是重點,重點是怎樣去實現九宮格的展示,上面的圖片中每行是4個,這個是我自定義的宏,可以任意修改,每行的展示數目以及展示的總數目,是比較靈活的。

        這里要說的是算法的核心,如果想不到這些也就沒法做到自動換行展示了。

        首先,你得自定義展示的總數目MAXPhotosNO(這里默認是9),每行展示的個數AvgImgsNo(默認為4),在自定義用來展示九宮格的視圖類里寫一個對象方法-(void)updateTheViewWithImgsArr:(NSArray *)imgsArr;,也就是將獲取到的圖片數組對象傳入這個方法,然后再進行處理。

        然后,就到了最關鍵的一步了,對圖圖片數組進行處理。先判斷數組里元素個數是否等于MAXPhotosNO,這里用于判斷是否需要隱藏添加按鈕。然后進行for循環處理,創建用于承載圖片的UIImageView,個數為圖片數組元素的個數。每次創建之前要知道它是第幾行的第幾個,以此來計算它應該處的位置。

        設置2個int類型參數:(i代表循環的變量)

        int s = i/AvgImgsNo;(確定是第幾行,0代表第一行,以此類推)

        int r = i%AvgImgsNo;(確定是第幾個,0代表第一個,以此類推)

        接下來就可以計算它的位置了:(帶space的參數為間距)

        imgV.frame = CGRectMake(ImgSpace*(r+1)+AvgWidth*r,RowSpace*                (s+1)+AvgWidth*s,AvgWidth,AvgWidth);

        當然,千萬別忘了添加按鈕的位置也發生了改變:

        同樣的2個參數: (因為它始終是最后一個,所以直接在后面加1計算就可以了)

        int k = (i+1)/AvgImgsNo;

        int j = (i+1)%AvgImgsNo;

        這里要注意:如果數組元素的個數已經達到了設置的MAXPhotosNO的最大值,要這樣做處理

        if((int)imgsArr.count==MaxPhotosNo){


            k = MaxPhotosNo/AvgImgsNo;    //始終讓它處在最后一行的最后一個,因為我需要它的方位來布局,如果不要的同學,可以不用這樣寫

    

        }

         最后,其實已經完成了,其中的細節可能還有些,但是大體的思路基本就是這個樣子,非常的簡單。我真的有點不明白為啥這樣的一個功能2周都寫不出來......,好吧我們都是站在巨人肩膀上說風涼話的人哈哈~



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大连市| 南开区| 合川市| 鹤庆县| 武威市| 巧家县| 宁陵县| 克什克腾旗| 黎川县| 金乡县| 博爱县| 孝感市| 吉隆县| 仪陇县| 永昌县| 莱州市| 延长县| 开原市| 亳州市| 盐边县| 崇信县| 大化| 定兴县| 茌平县| 奎屯市| 富裕县| 周宁县| 无棣县| 岱山县| 安远县| 利津县| 鹰潭市| 赤峰市| 宜兰县| 华阴市| 武鸣县| 湖州市| 大厂| 大连市| 永靖县| 广丰县|