關於無限循環輪播的方法:若是有5張圖片就5123451來設置html
//這個屬性用來表示UIScrollView內容的尺寸,滾動範圍(能滾多遠)ios
self.scorllView.contentSize = CGSizeMake(imageW * IMAGE_COUNT, 0);app
CGPoint offset = [self.scorllView contentOffset];ide
[self.scorllView setContentOffset:CGPointMake(-10, -10)]函數
[self.scorllView setContentOffset:CGPointMake(-10, -10) animated:YES];//動畫效果性能
self.scorllView.bounces = NO;動畫
self.scorllView.contentInset = UIEdgeInsetsMake(10, 10, 20, 30);spa
self.scorllView.scrollEnabled = NO;代理
self.scorllView.showsHorizontalScrollIndicator = NO;htm
self.scorllView.showsVerticalScrollIndicator = NO;
self.scrollView.pagingEnabled = YES;
self.scrollView.contentSize = self.miniView.image.size;
self.scrollView.maximumZoomScale = 2.0;
CGSize contentSize:設置UIScrollView的滾動範圍
CGPoint contentOffset:UIScrollView當前滾動的位置
UIEdgeInsets contentInset:增長滾動視圖四周的增長滾動範圍
BOOL bounces是否有彈簧效果
BOOL scrollEnabled是否能滾動
BOOL showsHorizontalScrollIndicator是否顯示水平方向的滾動條
BOOL showsVerticalScrollIndicator是否顯示垂直方向的滾動條
UIScrollViewIndicatorStyle indicatorStyle設定滾動條的樣式
BOOL dragging是否正在被拖拽
BOOL tracking按住手指尚未開始拖動的時候值是YES,不然NO
BOOL decelerating是否正在減速
BOOL zooming是否正在縮放
[_scrollView setMinimumZoomScale:0.2]; // 指定最小縮放比例
[_scrollView setMaximumZoomScale:2.0]; // 指定最大縮放比例
[_scrollView setDelegate:self]; // 設置滾動視圖的代理
// 縮放中的代理方法
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
NSLog(@"縮放中。。。");
}
// 縮放完成的代理方法
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{
NSLog(@"縮放完成 %f", scale);
}
// 必定要記住:本代理方法的返回值就是「要縮放的視圖對象」
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return _imageView;
}
要實現分頁效果,將滾動視圖的pagingEnabled屬性設置爲YES便可。設置該屬性後滾動視圖會被分割成多個獨立的頁面,用戶本來的滾動體驗會變成了頁面切換的效果
UIPageControl分頁控制控件(頁面下面的小點點)
UIPageControl屬性:
NSInteger numberOfPages:總頁數
NSInteger currentPage:當前的頁碼
BOOL hidesForSinglePage:當只有一頁的時候,是否要隱藏視圖
UIColor *currentPageIndicatorTintColor:當前選中頁面標示的顏色
代碼式例:
// 增長分頁控件
UIPageControl *pageControl = [[UIPageControl alloc]init];
[pageControl setBounds:CGRectMake(0, 0, 150.0, 50.0)];
[pageControl setCenter:CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 100.0)];
[pageControl setNumberOfPages:2];
[pageControl setCurrentPage:0];
[pageControl setCurrentPageIndicatorTintColor:[UIColor redColor]];
- (void)updatePageChanged:(UIPageControl *)pageControl{
CGFloat offsetX = pageControl.currentPage * _scroll.bounds.size.width;
[_scroll setContentOffset:CGPointMake(offsetX, 0) animated:YES];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSInteger pageNo = scrollView.contentOffset.x / scrollView.bounds.size.width;
//實現viewForZoomingInScrollView方法,返回要縮放的控件實現縮放,scrollview有多個圖片時,只能縮放其中一個,返回那個圖片就縮放那個圖片
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return self.miniView;
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
//設置總頁數
self.pageControl.numberOfPages = IMAGE_COUNT;
在使用UIScrollView和它的子類UITableView時,有時須要在不一樣操做狀態下,作不一樣的響應。
如何截獲這些狀態,如正在滾動,滾動中止等,使用UIScrollViewDelegate_Protocol。
@interface SampleClass: UITableViewController<UIScrollViewDelegate> {
...
}
...
@end
@implement SampleClass
...
#pragma mark -
#pragma mark UIScrollViewDelegate
// 觸摸屏幕來滾動畫面仍是其餘的方法使得畫面滾動,皆觸發該函數
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"Scrolling...");
}
// 觸摸屏幕並拖拽畫面,再鬆開,最後中止時,觸發該函數
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"scrollViewDidEndDragging - End of Scrolling.");
}
// 滾動中止時,觸發該函數
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"scrollViewDidEndDecelerating - End of Scrolling.");
}
// 調用如下函數,來自動滾動到想要的位置,此過程當中設置有動畫效果,中止時,觸發該函數
// UIScrollView的setContentOffset:animated:
// UIScrollView的scrollRectToVisible:animated:
// UITableView的scrollToRowAtIndexPath:atScrollPosition:animated:
// UITableView的selectRowAtIndexPath:animated:scrollPosition:
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {@end