UIScrollView, 滚动视图

    UIScrollView, 滚动视图, 继承于UIView, 用于显示超过一个屏幕的内容

    frame: 是滚动视图可视区域的大小

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];scrollView.backgroundColor = [UIColor colorWithRed:0.586 green:1.000 blue:0.977 alpha:1.000];

    内容页的大小, 默认值:CGSizeZero

    contentSize.width > frame.width: 水平滚动

    contentSize.height > frame.height: 垂直滚动

 scrollView.contentSize = CGSizeMake(375 * 2, 667 * 2); 

   是否能滚动到顶部(点击状态栏触发), 默认是YESscrollView.scrollsToTop = YES;内容页的偏移量scrollView.contentOffset = CGPointMake(0, 0);[scrollView setContentOffset:CGPointMake(0, 0) animated:YES];是否可以滚动, 默认YESscrollView.scrollEnabled = YES;是否显示垂直滚动条, 默认是YESscrollView.showsVerticalScrollIndicator = YES;是否显示水平滚动条, 默认是YESscrollView.showsHorizontalScrollIndicator = YES;是否回弹(前提: 能够滚动), 默认YESscrollView.bounces = YES;是否回弹(前提: 不能滚动, bounces是YES), 默认NOscrollView.alwaysBounceVertical = YES;scrollView.alwaysBounceHorizontal = YES;是否整屏滚动, 默认是NOscrollView.pagingEnabled = NO;代理scrollView.delegate = self;scrollView.tag = 1024;[self.view addSubview:scrollView];[scrollView release];

UIImageView如果不设置frame, frame大小 = 图片大小

  imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Baymax.jpg"]]; 

只有添加到scrollView, 视图才能跟着scrollView一起滚动

    [scrollView addSubview:imageView];[imageView release];

 滚动视图上的内容缩放

    1.设置delegate

    2.修改scrollView属性

   当前的缩放比例, 默认值1.0scrollView.zoomScale = 1.0;最大缩放比例, 默认为1.0scrollView.maximumZoomScale = 4.0;最小缩放比例, 默认为1.0scrollView.minimumZoomScale = 0.5;

 3.指定缩放的视图

    UIPageControl, 页面控件, 继承于UIControl, 一般配合UIScrollView使用

    : UIPageControl适用于页数比较少的情况, 比如5页以内; 如果页数比较多, 可以使用UILabel直接显示"99"

   UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(100, 600, 175, 40)];pageControl.backgroundColor = [UIColor blackColor];设置页数, 默认为0pageControl.numberOfPages = 5;当前页数, 默认为0pageControl.currentPage = 1;未选中圆点颜色pageControl.pageIndicatorTintColor = [UIColor redColor];选中圆点颜色pageControl.currentPageIndicatorTintColor = [UIColor greenColor];当只有一页时, 是否隐藏pageControl.hidesForSinglePage = YES;[pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];[self.view addSubview:pageControl];[pageControl release];

    UIButton *nextButton = [UIButton buttonWithType:UIButtonTypeSystem];nextButton.frame = CGRectMake(375 - 100, 40, 80, 30);[nextButton setTitle:@"下 一 页" forState:UIControlStateNormal];[nextButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];[nextButton addTarget:self action:@selector(nextPage) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:nextButton];UIButton *reset = [UIButton buttonWithType:UIButtonTypeSystem];reset.frame = CGRectMake(20, 40, 80, 30);[reset setTitle:@"还    原" forState:UIControlStateNormal];[reset setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];[reset addTarget:self action:@selector(reset) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:reset];- (void)nextPage {UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1024];改变偏移量
//  scrollView.contentOffset = CGPointMake(375, 0);[scrollView setContentOffset:CGPointMake(375, 0) animated:YES];}- (void)reset {UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1024];重置scrollView的缩放比例
//    scrollView.zoomScale = 1.0;[scrollView setZoomScale:1.0 animated:YES];
}

#pragma mark - UIScrollViewDelegate
//当滚动视图的偏移量做改变, 执行这个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {NSLog(@"已经滚动");
}- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {NSLog(@"将要开始拖拽");
}- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {//inout: 方法 内部使用的变量 和 外部使用的变量 是同一个NSLog(@"将要结束拖拽");
}- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {NSLog(@"已经结束拖拽");
}- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {NSLog(@"将要开始减速");
}- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {NSLog(@"已经结束减速");
}//调用setContentOffset:animated:这个方法触发
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {NSLog(@"已经结束滚动动画");
}- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {return YES;
}- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {NSLog(@"已经滚动到顶部");
}- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {//指定缩放的视图return imageView;
}- (void)scrollViewDidZoom:(UIScrollView *)scrollView {NSLog(@"滚动视图已经缩放");
}- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {NSLog(@"滚动视图将要开始缩放");
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {

    NSLog(@"滚动视图已经结束缩放");

} 

#import "WelcomeViewController.h"
@interface WelcomeViewController () <UIScrollViewDelegate> {UIScrollView *bgScrollView;UIPageControl *pagecontrol;
}
@end
@implementation WelcomeViewController
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.//创建滚动视图bgScrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];bgScrollView.backgroundColor = [UIColor colorWithRed:0.966 green:1.000 blue:0.429 alpha:1.000];bgScrollView.contentSize = CGSizeMake(320 * 4, 568);bgScrollView.pagingEnabled = YES;bgScrollView.showsHorizontalScrollIndicator = NO;bgScrollView.tag = 101;bgScrollView.delegate = self;[self.view addSubview:bgScrollView];[bgScrollView release];for (NSInteger i = 1; i <= 4 ; i++) {NSString *name = [NSString stringWithFormat:@"%ld.jpg", i];UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:name]];imageView.frame = CGRectMake(320 * (i - 1), 0, 320, 568);[bgScrollView addSubview:imageView];}pagecontrol = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 528, 320, 40)];
//  pagecontrol.backgroundColor = [UIColor yellowColor];pagecontrol.numberOfPages = 4;pagecontrol.pageIndicatorTintColor = [UIColor grayColor];pagecontrol.currentPageIndicatorTintColor = [UIColor greenColor];[pagecontrol addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];[self.view addSubview:pagecontrol];[pagecontrol release];
}
- (void)changePage:(UIPageControl *)pageControl {bgScrollView.contentOffset = CGPointMake(320 * pageControl.currentPage, 0);
}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{pagecontrol.currentPage = scrollView.contentOffset.x / 320;NSLog(@"%.2lf", scrollView.contentOffset.x / 320);
}
@end

转载于:https://www.cnblogs.com/OrangesChen/p/4925875.html

UIScrollView, 滚动视图相关推荐

  1. IOS UIScrollView 滚动视图的使用和文档

    UIScrollView 是一个可滚动的视图列表,在app中非常常见.下面简单的介绍一下UIScrollView 的用法.可实现代理UIScrollViewDelegate // 实例化UIScrol ...

  2. UIScrollView 滚动视图 (实例)

    UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ] ...

  3. Xamarin iOS教程之进度条和滚动视图

    Xamarin iOS教程之进度条和滚动视图 Xamarin iOS 进度条 进度条可以看到每一项任务现在的状态.例如在下载的应用程序中有进度条,用户可以很方便的看到当前程序下载了多少,还剩下多少.Q ...

  4. swift3 循环滚动视图 自适应横竖屏 reload数据源

    一句话创建banner图,可时时刷新 用到了 SnapKit.SDWebImage两个第三方库 实现步骤------------------------------------------------ ...

  5. swift:创建滚动视图的图片轮播器

    用swift创建图片轮播器和用OC创建的方式是一样的,都主要用到UIScrollView和UIImageview这两个控件,有几张图片,就将滚动视图的内容区域大小设置为每一张图片的大小乘以张数即可.然 ...

  6. ios之实现自动无限循环滚动视图(1)

    ios之实现自动无限循环滚动视图(1) 前言 效果展示 功能 分析 全部代码 前言 ios实现无限循环滚动主要有两种办法,都利用了UIScrollView,第一种是创建一个很大的UIScrollVie ...

  7. iOS换一种思路写一个无限轮播的滚动视图

    换一种思路写一个无限轮播的滚动视图 写这篇博客已经距离我当时写差不多有一个月时间了,也完善了很多,基本是没有bug的,如果有,不妨留言,喜欢的话,劳烦各位点个赞,不喜欢的,不妨看看思路,提提意见 1. ...

  8. 仿LOL盒子滚动视图

    中间是一个滚动视图.可左右拖动 // // HeroDetailViewController.m // LOLBox // // Created by guguCoder on 15/11/14. / ...

  9. Xamarin.Forms的滚动视图ScrollView

    Xamarin.Forms的滚动视图ScrollView 在Xamarin.Forms中,滚动视图ScrollView用来实现长内容的滚动显示.虽然ScrollView的Content属性只能设置一个 ...

  10. MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应...

    MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/detail ...

最新文章

  1. 动态添加方法 并且动态的执行 有类方法 对象方法
  2. 架构师之路 — 部署架构 — 集群部署
  3. html弹窗确认取消公告代码,js 弹出确认与取消对话框的四种方法
  4. (转)海量数据面试题集锦
  5. HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)
  6. 如何让PHP以root权限执行系统命令
  7. 微软部分服务已迁移至中国本地服务器
  8. 《C++ Primer》7.1.2节练习(部分)
  9. 单据打印_Excel多功能进销存套表,自动库存单据,查询打印一键操作
  10. python第三方库文件传输_Python第三方库在Excel文件读写中的应用
  11. 系统权限控制设计001---RBAC用户角色权限设计方案
  12. Camtasia 2021mac版
  13. Python 告诉你中秋应该去哪里
  14. Python实现随机漫步
  15. 微信小程序输出Object,Object
  16. JAYのpython学习笔记——数据结构之列表
  17. 关于WPS中公式用不了的问题
  18. 小程序项目:微信小程序美容理发店预约系统app——计算机毕业设计
  19. 12月30日goCom社区OSGi Topic大纲和PPT
  20. 零代码制作客制化87键机械键盘

热门文章

  1. NPAPI:WINDOWS中,调用函数不能阻塞
  2. VC下__func__未定义,改用__FUNCTION__
  3. Win10修改注册表,提示无法创建密钥
  4. 以正常使用来进行测试
  5. 全网独家:LINUX登录桌面后,如何自动运行自己的应用程序
  6. java 反射 接口_Java 怎么通过反射获取并实现这个类里面的接口,并且实现接口中的方法...
  7. mysql删除用户密码_MySQL 创建用户、授权用户、撤销用户权限、更改用户密码、删除用户(实用技巧)...
  8. android 广告字幕,Android编程实现类似天气预报图文字幕垂直滚动效果的方法
  9. Sysinternals Suite
  10. html5 localStorage