知識點:
1.UIScrollView運用
2.UIPageControl運用
@interface RootViewController ()<UIScrollViewDelegate>
=======================
UIScrollView運用
1.UIScrollView創立
2.常用屬性
1)滾動內容大小
@property(nonatomic) CGSize contentSize //實例化一個滾動視圖 UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds]; //設置滾動區域的大小 scrollView.contentSize = CGSizeMake(KScreenWidth * 3, KScreenHeigth *3);
2)能否分頁滾動
@property(nonatomic,getter=isPagingEnabled) BOOL pagingEnabled scrollView.pagingEnabled = YES;
3)設置內容地位
@property(nonatomic) CGPoint contentOffset //屏幕的寬度 #define KScreenWidth [UIScreen mainScreen].bounds.size.width //屏幕的高度 #define KScreenHeigth [UIScreen mainScreen].bounds.size.height //設置偏移量 //scrollView.contentOffset = CGPointMake(KScreenWidth, KScreenHeigth); //帶動畫設置偏移量 [scrollView setContentOffset:CGPointMake(KScreenWidth, KScreenHeigth) animated:YES];
4)顯示程度滾動條
@property(nonatomic) BOOL showsHorizontalScrollIndicator scrollView.showsHorizontalScrollIndicator= NO;
5)顯示垂直滾動條
@property(nonatomic) BOOL showsVerticalScrollIndicator scrollView.showsVerticalScrollIndicator = NO;
6)彈簧效果
@property(nonatomic) BOOL bounces //封閉彈簧效果 scrollView.bounces = NO;
=======================
UIScrollView的常用代理辦法
1)行將開端拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
2)行將中止拖拽
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity targetContentOffset:
(inout CGPoint *)targetContentOffset
3)曾經中止拖拽
scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
4)行將中止加速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
5)曾經中止加速
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
6)點擊形態欄回到頂部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
7)曾經滑到頂部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
8)縮小減少
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
9)縮放終了
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView
withView:(UIView *)view atScale:(CGFloat)scale
#pragma mark- UIScrollViewDelegate //預備開端拖拽 -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ NSLog(@"scrollViewWillBeginDragging"); } //預備中止拖拽 -(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{ NSLog(@"scrollViewWillEndDragging"); } //曾經中止拖拽 -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ NSLog(@"scrollViewDidEndDragging"); } //預備開端加速 -(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ NSLog(@"scrollViewWillBeginDecelerating"); } //曾經中止加速 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ NSLog(@"偏移量為%@",NSStringFromCGPoint(scrollView.contentOffset)); NSLog(@"scrollViewDidEndDecelerating"); } //滾動進程中不斷調用的代理辦法 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{ // NSLog(@"偏移量為%@",NSStringFromCGPoint(scrollView.contentOffset)); // NSLog(@"scrollViewDidScroll"); } //允許點擊形態欄滑動到頂部 -(BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{ return YES; } //曾經滑動到頂部 -(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{ //NSLog(@"scrollViewDidScrollToTop"); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"溫馨提示" message:@"曾經滑到最頂" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil]; //展現 [alert show]; } //設置代理 _scrollView.delegate = self; //設置縮小減少的范圍 _scrollView.minimumZoomScale = 0.5; _scrollView.maximumZoomScale = 2; [self.view addSubview:_scrollView]; #pragma mark- UIScrollViewDelegate //前往需求縮小的視圖 -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return _imageView; } //縮小減少完成之後的回調辦法 -(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{ //view -> 以後縮小減少的視圖對象 //scale -> 縮小減少的系數 NSLog(@"scale = %f",scale); //判別 if (scale < 1.0) { //減少 view.center = CGPointMake(scrollView.frame.size.width/2.0, scrollView.frame.size.height/2.0); }else{ //縮小 view.frame = CGRectMake(0, 0, view.frame.size.width, view.frame.size.height); } }
=======================
UIPageControl
1.UIPageControl創立方式
2.常用屬性
1)總頁數 @property(nonatomic) NSInteger numberOfPages //設置總頁數 _pageCtl.numberOfPages = 4; @property(nonatomic,retain) UIColor *pageIndicatorTintColor //設置以後頁碼顏色 _pageCtl.currentPageIndicatorTintColor = [UIColor greenColor]; //其他頁碼顏色 _pageCtl.pageIndicatorTintColor = [UIColor redColor]; 2)以後頁數 @property(nonatomic) NSInteger currentPage @property(nonatomic,retain) UIColor *currentPageIndicatorTintColor
3.結合UIScrollView
1)應用代理協議完成UIPageControl以後頁的設置
#pragma mark- UIScrollViewDelegate //中止加速 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ if (scrollView.contentOffset.x == self.view.frame.size.width * 5) { //不能用帶動畫跳轉 //當挪動到第六個視圖的時分 //霎時跳轉到第二個視圖 scrollView.contentOffset = CGPointMake(self.view.frame.size.width , 0); }else if (scrollView.contentOffset.x == 0){ //當挪動到第一個視圖的時分 //霎時跳轉到第五個視圖 scrollView.contentOffset = CGPointMake(self.view.frame.size.width * 4 , 0); } //設置頁碼 _pageCtl.currentPage = scrollView.contentOffset.x/self.view.frame.size.width - 1; }
【iOS開發-UI (十)UIScrollView 和 UIPageControl運用】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!