UIScrollview UIPageViewCon troller
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 20,kScreenWidth - 20 * 2, kScreenHeight - 20 *2)];
//2.配置属性
//2.1 设置内容区域的大小
scrollView.contentSize = CGSizeMake(500, 1000);
//2.2 修改内容区域的偏移量
//x变大,往左偏移,y变大往上偏移 1
// scrollView.contentOffset = CGPointMake(140, 400);
//2.3 是否显示滚动指示条
scrollView.showsHorizontalScrollIndicator = NO;//默认为YES
scrollView.showsVerticalScrollIndicator = NO;//默认为YES
//2.4 修改滚动指示条的样式
// scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
//2.5 设置scrollView 能否滚动
scrollView.scrollEnabled = YES;//默认为YES
//2.6 设置方向锁,设置滑动时只能从一个方向滚动
scrollView.directionalLockEnabled = NO;//默认为NO
//2.7 设置是否整屏滚动
//2.10 设置点击状态栏,scrollView 是否回到顶部,此时y轴的偏移量是0
//self指试图控制器对象
scrollView.minimumZoomScale = 0.5;
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
imageView.tag = 101;
imageView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
//添加到父视图
[scrollView addSubview:imageView];
[self.view addSubview:scrollView];
//释放所有权
[scrollView release];
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"开始拖拽了没?");
}
//触发时机:ScrollView 将要结束拖拽的时候触发
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffsetNS_AVAILABLE_IOS(5_0){
NSLog(@"拖拽结束了没?");
}
//触发时机:ScrollView 已经结束拖拽的时候触发
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"结束了没?好快啊!");
//在此方法中能拿到contenOfSet的偏移量
}
//触发时机:将要减速的时候触发(此方法不一定触发,匀速不一定触发)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
NSLog(@"减速了么?");
}
//触发时机:已经结束减速的时候触发(此方法不一定触发,上面的减速方法不触发,这个结束减速的方法就不会触发)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"加速完了吗?");
//一般在这个方法中获取scrollView的偏移量,或者设置scrollView的偏移量
}
//触发时机:scrollView结束减速并且必须有动画效果才会触发(必须要有动画效果偶)
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
NSLog(@"有动画吗");
}
//触发时机,返回缩放后的视图,但是只能返回scrollView(内容)上的子视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return [scrollView viewWithTag:101];
}
//触发时机:开始缩放的时候触发
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)viewNS_AVAILABLE_IOS(3_2){
NSLog(@"开始缩放了吗");
}
//触发时机:结束缩放的时候触发
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
NSLog(@"结束缩放了吗");
}
//触发时机:点击状态栏,调用该方法,该方法能实现的前提是scrollToTop的属性是YES
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
return YES;
}
//触发时机:scrollView 已经回到顶部了
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
使用scrollViewDidZoom: 实时修改自身视图的大小
使用scrollViewDidEndDecelerating: 获取contentOfSet
#import "PageViewController.h"
//图片个数
#define kImageCount 6
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
@interface LaunchViewController ()<</span>UIScrollViewDelegate>
//定义属性方便使用
@property(nonatomic,retain)UIScrollView *scrollView;
@property(nonatomic,retain)UIPageControl *pageControl;
@end
@implementation LaunchViewController
- (void)dealloc{
_scrollView = nil;
_pageControl = nil;
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
//再添加scrollView
[self layoutScrollView];
//先添加pageControl
[self layoutPageControl];
}
//布局scrollView
- (void)layoutScrollView{
self.scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
//设置内容页的大小
self.scrollView.contentSize = CGSizeMake(kImageCount * kScreenWidth, kScreenHeight);
//隐藏水平指示条
self.scrollView.showsHorizontalScrollIndicator = NO;
//整屏滑动
self.scrollView.pagingEnabled = YES;
//制定代理
self.scrollView.delegate = self;
//添加图片
for (int i = 0; i <</span> kImageCount; i ++ ) {
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i *kScreenWidth, 0, kScreenWidth, kScreenHeight)];
//图片名
NSString *name = [NSString stringWithFormat:@"v6_guide_%d",i + 1];
//初始化UIImage 对象
UIImage *image = [UIImage imageNamed:name];
imageView.image = image;
[self.scrollView addSubview:imageView];
[imageView release];
//添加手势
if (kImageCount - 1 == i) {
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:selfaction:@selector(handleTap: )];
}
self.scrollView.backgroundColor = [UIColor yellowColor];
[self.view addSubview:self.scrollView];
[self.scrollView release];
- (void)layoutPageControl{
_pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, kScreenHeight - 60,kScreenWidth, 60)];
_pageControl.numberOfPages = kImageCount;
//配置点的颜色
_pageControl.currentPageIndicatorTintColor = [UIColor redColor];
//配置其他点的颜色
- (void)handleTap : (UITapGestureRecognizer *)tap{
NSLog(@"轻拍了嘛?");
//是一个单例,可以实现数据持久化,当用户点击到最后一张图片时,引导图启动结束,此时在用户偏好中做一个标记,并把这个标记存储起来
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user setBool:YES forKey:@"daociyiyou"];
//赋值之后立即同步,作用是将事件标记的值存储起来
PageViewController *pageVC = [[PageViewController alloc]init];
//更换当前的window 的根视图控制器,将pageVC设置为主界面
//取出当前的应用程序对象
[UIApplication sharedApplication].keyWindow.rootViewController = pageVC;
[pageVC release];
}
#pragma mark scrollView的实现
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
//求出scrollView内容在x轴偏移量
CGFloat x = _scrollView.contentOffset.x;
//求出pageCrontrol对应的下标
_pageControl.currentPage = x / kScreenWidth;
}
- (void)handlePage : (UIPageControl *)page{
NSLog(@"%ld",page.currentPage);
//让_scrollView 跟pageControl 页数的改变而改变
//获取用户对象,用户对象中存储的是一些有用的偏好设置
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
//根视图
self.window.rootViewController = [LaunchViewController new];
}
return YES;
转载于:https://www.cnblogs.com/yxt9322yxt/p/4831161.html
UIScrollview UIPageViewCon troller相关推荐
- Spring MVC 如何上传多个文件到指定位置
Spring MVC 如何上传多个文件到指定位置 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公 ...
- UIScrollView上面放一个UIScrollView或者UITableView拖动时候 View出现一闪一闪解决办法...
在项目中发现一个问题: 创建一个UIScrollView 上面放一个scrollView或者TableView,拖动scrollview或TableView 画面出现一闪一闪的情况. 解决办法设置一下 ...
- UIScrollView
UIScrollView(包括它的子类 UITableView 和 UICollectionView)是 iOS 开发中最常用也是最有意思的 UI 组件,大部分 App 的核心界面都是基于三者之一或三 ...
- UIScrollView offset in UINavigationController
转:UIScrollView offset in UINavigationController 通过设置viewCtronller的 self.automaticallyAdjustsScrollVi ...
- UI基础 - UIScrollView
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];scrollView.backgroundCo ...
- 记一下uiscrollView不响应协议的问题
2019独角兽企业重金招聘Python工程师标准>>> @interface YHListImageView : UIScrollView <UIScrollViewDeleg ...
- 给UIScrollView添加category实现UIScrollView的轮播效果
给UIScrollView添加category实现UIScrollView的轮播效果 大家都知道,要给category添加属性是必须通过runtime来实现的,本教程中给UIScrollView添加c ...
- IOS UIScrollView (转)
UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 1 CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ...
- UIScrollView无法滚动可能的原因及解决办法分析
为什么80%的码农都做不了架构师?>>> -&: UIScrollView无法滚动可能的原因及解决办法分析 * 没有设置contentSize -> c ...
最新文章
- es6 中的generator函数控制流程
- storm后台启动命令(避免新开窗口)
- Spring JdbcTemplate CRUD增删改查操作
- 角色操作-查询所有角色代码实现
- ​坚持写代码,这是晋级大师的唯一方法。
- 开发文档模板_需求文档模板一堆什么样的适合你呢?
- yum php fpm5.6,CentOS 7 yum 安装php5.6
- 【转】ABP源码分析三十六:ABP.Web.Api
- [Perl] Python 与 Perl 合并,打造史上最牛语言 Parrot
- 将coco数据集转为voc格式代码
- 最棒的Hyper-V监控工具 - Hyper-V Gadget
- bootstrap 4 自动水平居中
- 基于jsp+servlet的 新闻管理系统。
- Java生成Word的报告模板
- JS工具类(一):DateUtil.js
- 7z命令行压缩加密文件
- 计算机网络安全及防火墙技术任务书,《毕业设计(论文)-计算机网络安全技术分析》.doc...
- 怎样建立个人邮箱账号?个人邮箱有什么功能?
- 计世资讯:大数据将使用户采购存储解决方案呈现两大新特征
- Just For Fun(乐者为王)——Linux创始人
热门文章
- 服务器重启django项目
- Java object类型转换为int类型
- Harbor安装(待补充)
- strus2常用标签自己一点小小的应用
- OJDBC版本【classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别】
- 织梦++高级搜索php,织梦多条件筛选功能实现(dede联动搜索) - DeDecms
- 交互设计课程1.0课程介绍
- 一步步制作Arduino智能小车
- Promise的基本用法以及作用
- matlab的imresize函数,为什么python cv2.resize函数对RGB图像给出的结果与MATLAB imresize函数不同?...