1. 程式人生 > >iOS之旅--scrollView實現無限輪播

iOS之旅--scrollView實現無限輪播

scrollView實現無限輪播

這裡為了實現真實的無限輪播,採用了 n+2 張圖片輪播,程式碼控制,顯示 第2 ~ 第n+1張圖片。

1、第1、n+1個圖片一樣,第2,n+2 個圖片一樣,具體看程式碼,

//第一張圖片(向前拖拽,為了迴圈,第一張圖應該和顯示的最後一張圖一樣)
    UIImageView *firstImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icc5"]];
    firstImage.frame = CGRectMake(0, 0, ScreenWidth, ScreenHeight);
    [self.scrollView addSubview:firstImage];

    //最後一張圖片(向後拖拽,為了迴圈,最後一張圖應該和顯示的第一張圖一樣)
    UIImageView *lastImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icc1"]]
; lastImage.frame = CGRectMake((imageCount + 1) * ScreenWidth, 0, ScreenWidth, ScreenHeight); [self.scrollView addSubview:lastImage]; //第二張圖 → 倒數第二張圖 for (NSInteger i = 0; i < imageCount; i++) { UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"icc%ld",i + 1]]
]; imageView.frame = CGRectMake(ScreenWidth * (i + 1), 0, ScreenWidth, ScreenHeight); [self.scrollView addSubview:imageView]; }

2、手動實現迴圈滾動,首先需要知道scrollView滾動結束呼叫的這兩個方法:

    /**
     *  當滾動檢視動畫完成後,呼叫該方法,如果沒有動畫,那麼該方法不會被呼叫,
     *  下面兩個方法為有效的動畫方法,
     *  setContentOffset:<#(CGPoint)#> animated:<#(BOOL)#>
     *  scrollRectToVisible:<#(CGRect)#> animated:<#(BOOL)#>
     */
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView /** * 滾動檢視減速完成,滾動將停止時,呼叫該方法。一次有效滑動,只執行一次。 */ - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

所以我們需要在這兩個方法裡面去處理一下scrollView

  • scrollView當前是最後一張圖的時候,設定offset為第二張圖(這裡要無動畫哦~,當然你也可以嘗試下有動畫是什麼效果)。
  • scrollView當前是第一張圖的時候,設定offset為倒數第二張圖(同理,無動畫)

最後就是計時器的設定,開始拖拽的時候我們需要取消計時器,拖拽結束的時候使用計時器,分別為下面兩個方法:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

下一個demo會使用collectionView實現輪播圖。

相關推薦

iOS--scrollView實現無限

scrollView實現無限輪播 這裡為了實現真實的無限輪播,採用了 n+2 張圖片輪播,程式碼控制,顯示 第2 ~ 第n+1張圖片。 1、第1、n+1個圖片一樣,第2,n+2 個圖片一樣,具體看程式碼, //第一張圖片(向前拖拽,為了迴圈,第一張圖應

iOS:UICollectionView實現無限圖(Swift3)

效果圖 原理:給collectionView設定多組一樣的資料,預設展示中間的那一組.當滾動到上一組或者下一組的時候採用無動畫的方式滾動到最中間的那一組.這樣就實現了檢視的無限輪播. class

iOS最笨的辦法實現無限圖(網路載入)

簡單的做了一下: 使用方法: 把 請求返回的 圖片地址(字串型別)放進陣列中就行 可以使用SDWebImage(我就是用的這個)等。。需要自己匯入並引用,然後修改部分程式碼 .h檔案 // ScrollViewTimerView.h // Scrol

從網路獲取圖片實現無限 外賣公眾號開發找捌躍科技

//網路請求資料工具類 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader

banner實現無限+下拉重新整理上拉載入+ 下拉時 listview 和圖一起重新整理

//首先把所需要的依賴包匯入  gson jar包、imageLoader jar包、banner1.4.9jar包、design jar包,,,然後匯入library,新建專案,把library匯入專案中 //新增許可權 <uses-permiss

利用RecyclerView實現無限廣告條

前言: 公司產品需要新增懸浮廣告條的功能,要求是可以迴圈滾動,並且點選相應的浮條會跳轉到相應的介面,在實現這個功能的時候遇到一些坑,幸運的是最後從這些坑中爬了出來。這篇文章的主要內容就是介紹功能的實現以及爬坑的經驗。 效果展示   在文章開始前,先看下最後實現的效果,最終的效果如下圖

使用CollectionView實現無限圖(自動和手動輪)

使用UICollectionView封裝了一個無限迴圈的輪播圖,實現手動輪播和定時器自動輪播,傳入圖片陣列和標題陣列,即可實現圖片文字的輪播圖,並有點選事件,實現代理方法可實現點選事件的處理 ///呼叫 class HomeViewController: B

安卓最簡單的實現無限

Android中的輪播圖實現起來並不難,現在特別是商城類的APP中使用的特別多,自定義view和ViewPager都能很簡單的實現,之前找了幾篇博文都不具備無限輪播的功能,現在自己實現了無限輪播的功能,供大家參考學習和使用~~~~ 先看效果圖: 下面就看一下具體的程

iOS懸浮檢視:按鈕/圖片/圖/gif圖/視訊/音訊/自定義view

我自定義個 LCSuspendCustomView繼承UIView 在這個View中我添加了按鈕(UIButton),圖片(UIImageView),GIF圖(UIWebView)到檢視上. 重寫了touchsbegan:/touchsMoved:/touchsEnded:三個方法.如下: - (void)

用jq實現無限

$(function(){ function Slide(){ this.data={ img_width:300, img_height:300,

Android ViewPager+Handler實現無限和監聽處理事件時速度越來越快的問題解決

大家都知道android的無限輪播實現的方法有很多,我們先來看看ViewPager+Handler吧: 一.ViewPager+Handler實現無限輪播    點選下載原始碼 package com.demo.sb.main; import java.util.Arra

Android 實現 一 :三方框架 自定義viewPager (CircleViewPager.)實現無限

使用流程:1  。 gradle中新增依賴compile 'com.zhpan.library:viewpager:1.0.3'2.在xml檔案中新增如下程式碼:<com.zhpan.viewpager.view.CircleViewPager andr

JavaScript學習用陣列實現圖片

js程式碼: <script type="text/javascript"> //定義num為0 var num=0; //定義一個數組,其中元素為要實現輪播的圖片

iOS開發三個Button實現圖片無限(參考手機淘寶,Swift版)

這兩天使用Reveal工具檢視"手機淘寶"App的UI層次時,發現其圖片輪播使用了三個UIButton的複用來實現的圖片迴圈無縫滾動。於是乎就有了今天這篇部落格,看到“手機淘寶”這個幻燈片的UI層級時,就想要動手使用三個Button來實現一下,當然本篇部落格使用是Swift語言,思路就是使用三個Button進

iOS實現圖片的無限---使用第三方庫SDCycleScrollView

支援pod匯入 如果發現pod search SDCycleScrollView 搜尋出來的不是最新版本,需要在終端執行cd轉換檔案路徑命令退回到desktop,然後執行pod setup命令更

IOS開發UI篇--使用UICollectionView實現一個無限的案例

一、案例演示 本案例Demo演示的是一個首頁輪播的案例,支援手動輪播和自動輪播。知識點主要集中在UICollectionView和NSTimer的使用。 二、知識儲備 2.1、UICollectionView橫向佈局 只需要設定UICollect

iOS開發項目實戰——Swift實現圖片與瀏覽

0.10 上網 timer類 開發項目 cas hub string obj tle 近期開始開發一個新的iOS應用,自己決定使用Swift。進行了幾天之後,發現了一個非常嚴峻的問題。那就是無論是書籍,還是網絡資源,關於Swift的實在是太少了,隨便一

無限 實現原理

 1 // 2 //  YYViewController.m 3 //  07-無限滾動(迴圈利用) 4 // 5 //  Created by apple on 14-8-3. 6 //  Copyright (c) 2014年 yangyong. All rights reserved. 7 // 8 

ViewPager圖:自動無限,手指長按停止,實現點選事件(實用版)

此Demo是自定義的viewpager,實現功能如下:無限自動輪播,pager點選事件處理,手指長按停止自動輪播,手指擡起恢復自動輪播; 幾乎可以滿足目前專案中的要求;大家可以直接使用; 整個Demo分兩大類,一個是自定義的ViewPager,一個是MainActivi

android中無限圖的實現(程式碼+文章+視訊)

Android開發中無限輪播圖的實現 前面在我們的論壇裡頭看到有同學們提問,怎麼樣去實現無限輪播。所以晚上回來就錄製了視訊了! 實現方式 最簡單的方式,就是使用viewpager來實現咯! 我們一開始只是實現圖片在viewPager上面可以滑動起