UIScrollView UIPageControl
发布日期:2022-02-08 18:03:24 浏览次数:52 分类:技术文章

本文共 3937 字,大约阅读时间需要 13 分钟。

1. UIScrollView:

1.1. 属性:

contentSize:设置滑动的范围

contentOffset:偏移位置---屏幕的原点在整个滑动scroll坐标系的位置(CGPoint)

bounces:边界回弹

indicatorStyle:滚动条的样式

pagingEnabled:是否整页滑动

scrollEnabled:是否允许滑动

- (void)addViews {    self.backgroundColor = [UIColor whiteColor];        self.img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.jpeg"]];    self.img.frame = CGRectMake(0, 0, 300, 500);    #pragma mark-----1. UIScrollView初始化:    self.scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 50, 300, 500)];// 图片只是一个小窗口//    self.scroll = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds];// 图片是全屏的效果    self.scroll.backgroundColor = [UIColor orangeColor];    [self.scroll addSubview:self.img];    #pragma mark------2. 属性:    // 滑动的范围: 要想有滑动效果 contentSize的值一定要比frame的大    self.scroll.contentSize = CGSizeMake(900, 1000);        // 初始位置的偏移: contentSize范围的contentOffset点和scroll原点重合时的效果(屏幕的原点在scroll坐标系下的位置)    self.scroll.contentOffset = CGPointMake(100, 0);    [self.scroll setContentOffset:CGPointMake(00, 0) animated:YES];// 和直接用.contentOffset设置,是一个意思        //隐藏滚动条:  设置为NO时隐藏  默认是YES    self.scroll.showsHorizontalScrollIndicator = YES;// 水平方向的滚动条    self.scroll.showsVerticalScrollIndicator = YES;// 垂直方向的滚动条        // 边界回弹效果: 滑到最边上的时候会弹回去...设置为NO没有此效果  默认是YES    self.scroll.bounces = YES;        // 滚动条的样式: (设置这个时,不能隐藏滚动条)    self.scroll.indicatorStyle = UIScrollViewIndicatorStyleWhite ;        // 整页滑动: 设置YES之后,每次滑动跳转的都是整张图片,滑动太小:回到原图片,滑动太大:跳到下一张图片    self.scroll.pagingEnabled = YES;        // 设置能否滑动: 默认YES    self.scroll.scrollEnabled = YES;      #pragma 添加第二张图片:    self.img1 = [[UIImageView alloc] initWithFrame:CGRectMake(300, 0, 300, 1000)];    self.img1.image = [UIImage imageNamed:@"2.jpeg"];    [self.scroll addSubview:self.img1];        // 点击状态栏回到顶部 (没有效果)    self.scroll.scrollsToTop = YES;#pragma 添加第三张图片:    self.img2 = [[UIImageView alloc] initWithFrame:CGRectMake(600, 0, 300, 500)];    self.img2.image = [UIImage imageNamed:@"3.jpeg"];    [self.scroll addSubview:self.img2];            self.scroll.delegate = self;        // 缩放的倍数  缩放时要设置代理    self.scroll.maximumZoomScale = 2;    self.scroll.minimumZoomScale = 0.5;        [self addSubview:self.scroll];    }

控制缩放的代理方法:<UIScrollViewDelegate>

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;{    return self.img2;    }
注意:

添加图片时注意图片左上角点的坐标,主要是横坐标,每张图片都设置的不一样

实现缩放时,要实现代理方法<UIScrollViewDelegate>

添加多张图片时,就可以给scrollView建几个子scrollView,一个子scrollView放一张图片,这样就不会影响每一张图片的缩放

一些代理方法:

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {    NSLog(@"即将开始拖拽");}-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {    NSLog(@"即将开始减速");}-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {    NSLog(@"已经拖拽");}-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {    NSLog(@"已经减速");    }

缩放的一些属性:

minimumZoolScale:缩小的最小比例

maximumZoolScale:放大的最大比例

zoomScale:设置变化比例

zooming:是否正在进行缩放反弹

bouncesZoom:控制缩放的时候是否会反弹

2. UIpageControl:

pageIndicatorTintColor:未选中点的颜色

currentPageIndicatorTintColor:当前点的颜色

currentPage:当前页数

- (void)addViews {    self.backgroundColor = [UIColor whiteColor];    #pragma mark ---- 1. 初始化(和之前的都一样-->三步)    self.page = [[UIPageControl alloc] initWithFrame:CGRectMake(50, 50, 200, 50)];    self.page.backgroundColor = [UIColor orangeColor];    [self addSubview:self.page];#pragma mark ---- 2. 属性// 其他未被选中点点的颜色    self.page.pageIndicatorTintColor = [UIColor blackColor];    // 被选中的点点的颜色    self.page.currentPageIndicatorTintColor = [UIColor redColor];    // 分几个小圆点    self.page.numberOfPages = 3;    // 继承于UIControl 所以有添加事件的方法    [self.page addTarget:self action:@selector(pageAction:) forControlEvents:UIControlEventValueChanged];    // 当前在第几页面:currentPage    self.page.currentPage = 2;}- (void)pageAction:(UIPageControl *)sender {        NSLog(@"%ld", sender.currentPage);}
注意:

UIPageControl触发事件时使用的是:UIControlEventValueChanged   不是UIControlEventTouchUpInside

转载地址:https://blog.csdn.net/Evelynzn/article/details/49329079 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:自己看的东西:UIWebView UIAlertController UIPickerView
下一篇:UINavigationController

发表评论

最新留言

不错!
[***.144.177.141]2024年04月14日 14时13分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

MySQL数据库从入门到实战应用(学习笔记二) 2019-04-27
种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林 2019-04-27
【C++】攻克哈希表(unordered_map) 2019-04-27
转:【答学员问】- 该如何根据岗位学习相关技能 2019-04-27
转:【答学员问】有什么经验教训,是你在面试很多次之后才知道的? 2019-04-27
消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ? 2019-04-27
【奇技淫巧】-- 三角形最小路径和 2019-04-27
【小技巧】argc和argv的用法 2019-04-27
学不下去了怎么办? 2019-04-27
二叉树的前中后序遍历(迭代法)(带动画) 2019-04-27
【小技巧】【XShell】【Xftp】Windows桌面与Linux虚拟机互传文件 2019-04-27
【redis入门】Centos下安装redis 2019-04-27
【redis入门】redis安装后相关知识串讲 2019-04-27
【redis】来吧,展示一下redis 发布-订阅模式 2019-04-27
讲通C/C++预编译/条件编译指令 #ifdef,#ifndef,#endif,#define,… 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第二天:空间配置(zmalloc) 2019-04-27
当下热点词再学:redis缓存预热、更新、降级,限流 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist 2019-04-27
别抖,OK? 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流,串讲 2019-04-27
第六天:网络处理(anet部分)-- redis源码慢慢学,慢慢看【redis6.0.6】 2019-04-27