IOS中UIKit-UIPageControl利用delegate定位圓點位置

IOS 中UIKit-UIPageControl利用delegate定位圓點位置

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東陽,十多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

在UIScrollView中會添加UIPageControl作為頁碼標(biāo)識,可以讓用戶清楚的知道當(dāng)前的頁數(shù)。我們需要優(yōu)化的一點是讓pageControl的小圓點精確的跟著scrollView而定位。我們先來看一下效果圖:

IOS 中UIKit-UIPageControl利用delegate定位圓點位置

我們發(fā)現(xiàn),當(dāng)圖片拖動不到一半的時候,pageControl的圓點定位到前一張圖,圖片拖動超過一半的時候,定位到下一張圖。這里就需要四舍五入的計算了。

我們可以利用協(xié)議 delegate 去做這件事情。

首先,我們要為當(dāng)前我們設(shè)置的這個scrollView添加代理:

scrollView.delegate = self; 

這里必須要讓當(dāng)前類去遵守 UIScrollViewDelegate 協(xié)議。

在 UIScrollViewDelegate 中,有這么一個方法,只要scrollView滾動就可以觸發(fā)。我們可以在這個方法中去實現(xiàn)。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
  // 用水平移動的距離除以寬度等于頁數(shù),但是并沒有精確 
  double page = scrollView.contentOffset.x / scrollView.width; 
   
  // 采用四舍五入來確定更靠近哪一頁,并設(shè)置(下面是一個四舍五入的小技巧,+ 0.5 再向下取整即可) 
  self.pageControl.currentPage = (int)(page + 0.5); 
} 

分析舉例說明:(page = 0 為第一張圖片,page = 1 為第二張圖片,以此類推)

page = 0.95,更接近第二張圖片,page + 0.5 = 1.45,(int)1.45 = 1
page = 1.21,更接近第二張圖片,page + 0.5 = 1.71,(int)1.71 = 1
page = 1.67,更接近第三張圖片,page + 0.5 = 2.17,(int)2.17 = 2
page = 2.11,更接近第三張圖片,page + 0.5 = 2.61,(int)2.61 = 2

另外注意的是,強制轉(zhuǎn)化為int類型是向下取整,即省略小數(shù)點后的所有數(shù)字。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

分享名稱:IOS中UIKit-UIPageControl利用delegate定位圓點位置
網(wǎng)站網(wǎng)址:http://bm7419.com/article30/ipocpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、商城網(wǎng)站做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化