<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                平時APP中的廣告位或者滾動的新聞圖片等用到的就是圖片輪播這種效果,實現方式主要有兩種,一種是ScrollView+ImageView,另一種則是通過CollectionView,今天總結的是ScrollView這種方式。 ###1.圖片輪播效果實現 主要實現思路是:根據圖片總數及寬高設置好ScrollView的大小,每切換一張圖片相當于在ScrollView上進行一個圖片寬度的移動行為,并加入定時器,實現自動輪播。 如圖所示,設置好ScrollView及PageControl,ScrollView的contentSize根據圖片數量確定,注意啟用pagingEnabled這個屬性,確保整頁移動,同樣pageControl也是根據圖片數量來確定,每一頁代表一張圖片。 contentOffset更新頁碼。 ![](https://box.kancloud.cn/2016-03-22_56f10e22028ef.png) 定時器設置,這里設置為每隔2秒滾動更新一次,實際上就是每隔2秒更新一次頁碼,根據頁碼的變化,讓ScrollView跟著移動,每次移動一張圖片的距離 ![](https://box.kancloud.cn/2016-03-22_56f10e2219f52.png) 這里還需要注意的是,由于加入定時器有自動輪播的效果了,會與手動拖拽ScrollView沖突,即手動拖拽ScrollView過程時ScrollView可能自動移動更新圖片了,顯然這種效果是不符合用戶習慣的,這時需要在ScrollView的代理事件中進行處理,即開始拖拽ScrollView時停止定時器,拖拽結束后再開啟定時器。 ![](https://box.kancloud.cn/2016-03-22_56f10e223b49f.png) 那到這里是不是就結束了呢?我們看看效果圖: ![](https://box.kancloud.cn/2016-03-22_56f10e227d4f6.gif) 這里有兩個問題: (1)首先是移動到最后一張圖片時無法移動了,如果是制作APP的新特性頁面,這樣的滾動效果已經可以了,但如果在廣告位或者是滾動新聞這些場景下這種效果是不夠好的,一般滾動到最后一張圖片時,繼續拖拽都會移動到第一張圖片,實現一種滾動循環效果。 (2)定時器自動輪播圖片時,確實圖片循環輪播了,但是仔細看會發現,ScrollView是由最后一種圖片位置生硬得拉回到第一張圖片的位置,效果也不夠理想。 解決辦法下面接著說。 ###2.圖片輪播無限循環效果實現 剛剛說到第一個問題,ScrollView移動到最后一張圖片時無法移動了,這是因為ScrollView已經移動到最后,而圖片又是依次排列,自然也就無法移動。 解決辦法是,我們換一個思路實現圖片輪播效果,ScrollView上只放三個ImageView,屏幕始終顯示中間的ImageView,左邊和右邊的ImageView分別代表前一張圖片和后一張圖片,屏幕移動的時候,中間的ImageView變化,同時左右兩邊的ImageView也隨之變化,兩種邊界情況: (1)當屏幕顯示最后一張圖片時,右邊的ImageView也即下一站圖片應該是最開始的第一張圖片; (2)當屏幕顯示最開始的第一張圖片時,左邊的ImageView也即上一張圖片應該是最后一張圖片。 這樣三個ImageView不斷變化就造成一種圖片輪播無限循環的效果。 參考:http://www.cnblogs.com/kenshincui/p/3913885.html 相對于之前的效果,有一些改變,主要有: (1)ScrollView只需要設置三個ImageView即可,并且默認顯示中間的ImageView ![](https://box.kancloud.cn/2016-03-22_56f10e23d791e.png) (2)根據ScrollView的移動情況,迅速變化三個ImageView中圖片數據 ![](https://box.kancloud.cn/2016-03-22_56f10e240a036.png) (3)ImageView更新完畢后,偷偷把ScrollView拉回到中間的ImageView位置,這樣視覺效果上就實現了無限循環的效果 ![](https://box.kancloud.cn/2016-03-22_56f10e2423ede.png) 效果圖: ![](https://box.kancloud.cn/2016-03-22_56f10e245d66f.gif)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看