Oc 滚动视图
来源:互联网 发布:平面广告图制作软件 编辑:程序博客网 时间:2024/06/08 12:10
一、UIScrollView的概念
UIScrollView是一个能够滚动的试图控件,能够滑动的视图,都是继承于UIScrollView,而UIScrollView继承于UIView
UIScrollView的子类:UITableView、UITextView、UICollectionView
二、UIScrollView的概念
contentSize 能够让视图显示更多的内容,contSize就是UIScrollView实际内容大小.如果contentSize的尺寸比ScrollView小,或者相等,则ScrollView不能滑动
contentOffset平移量,能够直接定位到你想看的内容
contentInset 给ScrollView四周增加额外的滚动区域,内容的内边框
showsHorizontalScrollIndicator 是否设置水平滚动条
showsVerticalScrollIndicator 是否设置垂直滚动条
bounces 是否设置回滚效果
scrollEnabled 是否滚动
indicatorStyle 设置滚动条样式
pagingEnabled 设置滚动分页
maximumZoomScale图片最多能放大多少倍(要放大、缩小得挂上代理)
minimumZoomScale图片最多能缩小多少倍
decelerationRate减速速率
*设置不包含导航栏解决全屏滚动视图上面导航栏处无图片的问题,图片从导航栏一下开始定位计算,这个以后做项目总会有必要记得
self.edgesForExtendedLayout=UIRectEdgeNone;
设置滚动视图方向垂直
scrollView.direction=Vertical;
delegate 代理
三、UIScrollView的代理方法(放大、缩小、拖拽)
已经滚动时调用- (void)scrollViewDidScroll:(UIScrollView*)scrollView;已经缩放- (void)scrollViewDidZoom:(UIScrollView *)scrollView;开始拖拽- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView;将要拖拽结束获得降速的速率和偏移量- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inoutCGPoint *)targetContentOffset;拖拽结束将要降速- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate;开始降速- (void)scrollViewWillBeginDecelerating:(UIScrollView*)scrollView结束降速- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView滚动动画将要消失- (void)scrollViewDidEndScrollingAnimation:(UIScrollView*)scrollView设置缩放视图- (nullableUIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView开始缩放- (void)scrollViewWillBeginZooming:(UIScrollView*)scrollView withView:(nullableUIView*)view结束缩放以及缩放的比例- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(nullableUIView*)view atScale:(CGFloat)scale;是否可以滚动到顶部设置YES可以- (BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView移动到顶部调用- (void)scrollViewDidScrollToTop:(UIScrollView*)scrollView;
下面一个demo来展示下
#import "ViewController.h"@interface FirstLoginViewController ()<UIScrollViewDelegate>{ UIScrollView *theScroll; NSArray *arr; UIPageControl *thePage;}
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. theScroll = [[UIScrollView alloc]initWithFrame:self.view.frame]; theScroll.delegate = self; [self.view addSubview:theScroll]; theScroll.pagingEnabled = YES; arr = @[@"1.JPG",@"2.JPG",@"3.JPG"]; theScroll.contentSize = CGSizeMake(self.view.frame.size.width*arr.count, self.view.frame.size.width); for (int i = 0; i<arr.count; i++) { UIImageView *theImg = [[UIImageView alloc]initWithFrame:CGRectMake(theScroll.frame.size.width * i, 0, self.view.frame.size.width, self.view.frame.size.height)]; theImg.userInteractionEnabled = YES; theImg.image = [UIImage imageNamed:arr[i]]; if (i == arr.count-1) { UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake((self.view.frame.size.width-100)/2, 550, 100, 40)]; [btn setTitle:@"立即体验" forState:UIControlStateNormal]; [btn setBackgroundColor:[UIColor blackColor]]; [btn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside]; btn.layer.cornerRadius = 10; btn.layer.masksToBounds = YES; [theImg addSubview:btn]; } [theScroll addSubview:theImg]; } //创建页面控制器 thePage = [[UIPageControl alloc]initWithFrame:CGRectMake((self.view.frame.size.width-100)/2, 600, 100, 30)]; thePage.numberOfPages = arr.count; thePage.currentPage = 0; [self.view addSubview:thePage];}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSInteger index = theScroll.contentOffset.x / theScroll.frame.size.width; thepage.currentPage = index;}
- Oc 滚动视图
- OC-视图
- 滚动视图
- 滚动视图
- 滚动视图
- 滚动视图
- UI-滚动视图(滚动视图)
- 滚动视图滚动至顶部
- 滚动视图和网页视图
- 内置视图-滚动视图
- Android视图之滚动视图
- OC 视图的生命周期
- oc 视图转换
- 4. android 滚动视图
- 滚动视图双缓冲
- 滚动视图二
- UIScrollView 滚动视图
- 滚动视图 ScrollView
- C语言回溯法装载问题
- easydss与linux内核接收网络数据流程(四)
- 第6章任务3:创建登录界面
- 367. Valid Perfect Square
- 赋值中的类型转换
- Oc 滚动视图
- Spring Boot @Configuration 和 @Component
- (六)生成器
- 学生的成绩
- CodeForces
- NOIP2016普及组复赛买铅笔
- 24点
- [BZOJ]1426 收集邮票 概率与期望
- Oc LocateMap(地图定位)