- 分頁功能(重點)
如果圖片名稱有規(guī)律钦讳,尺寸也有規(guī)律梆惯,那么可以用for循環(huán) 創(chuàng)建imageView
-
設(shè)置contentSize = CGSizeMake (圖片個數(shù)*W,H)
- 細(xì)節(jié):contentSize = CGSizeMake(圖片個數(shù)*H,O)高度設(shè)置0也可以
- O代表在垂直方向不能滾動
-
隱藏滾動條
- storyboard :showsHorzontal勾掉
- 代碼 :showsHorizontal
-
開啟分頁功能:pagingEnabled = YES
- 分頁標(biāo)準(zhǔn):以scrollView的尺寸為一頁
-
顯示頁碼
- storyboard:UIPage Control控件
- 因為UIPage Control控件是scrollView的子控件會被scrollView擋住
- UIPageControl和scrollView同層級章鲤,才不會被擋住
- storyboard:UIPage Control控件
-
監(jiān)聽滾動,改變頁碼
- currentPage
- 1.當(dāng)scrollView停止?jié)L動的時候顯示頁碼(蘋果)
- scrollViewDidEndDraggin: willDecelerate:
- decelerate == NO
- 計算頁碼,設(shè)置頁碼
- decelerate == NO
- scrollViewDidEndDcelerating:
- 計算頁碼: 偏移量的x值除以scrollView的寬度
- 設(shè)置頁碼:currentPage = page
- scrollViewDidEndDraggin: willDecelerate:
- 2.哪邊圖片顯示比例大田盈,就滾動到哪一頁(示例程序)
- scrollViewDidScroll:
- 四舍五入:(int)(小數(shù) + 0.5)
- page = (int) (contentOffset.x /scrollView.size.W + 0.5)
- scrollViewDidScroll:
-
手動設(shè)置總頁數(shù)
- numberOfPages = 圖片個數(shù)
- 圖片個數(shù)為1時候,隱藏pageControl
- 設(shè)置pageControl.alpha = 0.0
- pageControl.hidden = YES
- hidesForSinglePage = YES
-
pageControl顯示自定義的圖片
- 當(dāng)前頁顯示current
- 其他頁顯示other
- xcode6.4頭文件中有成員變量
- xcode6.4之后變成私有的屬性 - 私有:currentPageImage
- 私有:pageImage
- KVC:
- self.pageControl setValue:[UIImage imageNamed:@"current"]forKeyPath:@"_currentPageImage"
- self.pageControl setValue:[UIImage imageNamed:@"other"]forKeyPath:@"_pageImage"
-
每隔一段時間滾動到下一頁
-
定時器:每隔一段時間做一件事情
- [NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:YES]
-
計算下一頁頁碼:當(dāng)前頁碼 + 1
- currentPage + 1
- setContentOffset: (頁碼*scrollView的寬度缴阎,0)animated:
-
- 補(bǔ)充:
- 定時器一直在工作允瞧,當(dāng)用戶想往前滾動的時候,圖片卻一直往后滾動
- 當(dāng)用戶操作界面的時候蛮拔,讓定時器停止
-
scrollViewWillBeginDragging: 用戶即將拖拽scrollView
- 停止定時器
- 定義定時器屬性weak,內(nèi)部有一個看不見的指針在引用
- [self.timer invalidate]
- self.timer = nil(屬性是strong時才寫)
-
scrollViewDidEndDragging:用戶已經(jīng)停止拖拽
- 開啟定時器
- NSTimer scheduledTimerWithTimeInterval:
- 開啟定時器方法返回的是一個自動執(zhí)行任務(wù)的定時器
最好將開啟定時器述暂,停止定時器抽兩個方法
-
問題:頻繁創(chuàng)建、銷毀定時器對象
- 定時器特點決定的
-
- 注意定時器方法里语泽,userInfo的作用
- 線程
- 線程:用來執(zhí)行任務(wù)的
- 特點:同一時間只能執(zhí)行一個任務(wù)
- 主線程:程序一啟動贸典,就會創(chuàng)建一條默認(rèn)的線程
- 作用:負(fù)責(zé)顯示刷新UI界面,處理與用戶的交互事件
- [[NSRunloop mainRunloop] addTimer:self.timer forMode:NSRunLoopCommonModes]將定時器添加到runLoop中
- 目的:不管主線程在做什么操作踱卵,都要分配一定的時間處理定時器
- NSDefaultRunLoopMode:默認(rèn)廊驼,同一時間只能執(zhí)行一個任務(wù)
- NSRunLoopCommonModes:公用,分配一定的事件處理其他任務(wù)
- 多線程原理:1s——>一萬個0.0001s
- cpu在多個任務(wù)中來回快速切換
- 感覺同時執(zhí)行惋砂,那是假象
- 線程:用來執(zhí)行任務(wù)的