iOS:UI系列之UIScrollview和UIPagecontrol
转眼间,又是一天,就这样忙忙碌碌的一天一天的过着, 不过还好,不是浑浑噩噩的,也算是小有所成,劳有所获吧,嘿嘿!
好了,到了总结的时间啦, 下面就为大家简单讲解下我今天学习的内容吧,希望对各位都有所帮助吧,同时也是对自己的一种激励,最终实现共赢吧 嘿嘿!
首先,在上课时间我们先简单讲述了UIScrollView, 它是一个滚动视图,继承于UIView,他没有自己的初始化方法,所以要用到父类的创建方法下面就为大家简单说明下其创建过程哈:
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
scrollView.backgroundColor = [UIColor redColor];
//设置内容页的大小,内容的大小必须比frame大,才能够滚动
//如果不设置内容页的大小,默认和frame大小一致
[scrollView setContentSize:CGSizeMake(, * )]; //设置滚动条是否可见
//水平滚动条
scrollView.showsHorizontalScrollIndicator = YES;
//竖直滚动条
scrollView.showsVerticalScrollIndicator = YES;
//设置内容页的偏移量, 默认内容页从(0, 0)点开始
scrollView.contentOffset = CGPointMake(, );
//设置整页滑动
scrollView.pagingEnabled = NO;
//设置边界是否回弹
scrollView.bounces = YES;
//滚动到顶部
scrollView.scrollsToTop = YES;
//设置能否滚动
scrollView.scrollEnabled = YES;
//设置边界是否回弹,只有在content的宽度或者高度 小于 frame的宽度或者高度,才有效
scrollView.alwaysBounceVertical = YES;
scrollView.alwaysBounceHorizontal = YES; //缩放, 缩放必须结合着代理(delegate)才能生效, 指定scrollView上哪个视图进行缩放
//设置当前的缩放比例, 默认为1.0
scrollView.zoomScale = 1.0;
//设置最大缩放比例
scrollView.maximumZoomScale = 2.0;
//设置最小缩放比例
scrollView.minimumZoomScale = 0.5; //设置delegate
scrollView.delegate = self; [self.view addSubview:scrollView];
[scrollView release]; imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image"]];
imageView.frame = CGRectMake(, , , * );
[scrollView addSubview:imageView];
[imageView release];
其中delegate代理的常用方法如下:
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} //当滚动scrollView时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
} //当发生了缩放的时候调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
} //对ScrollView中的哪个视图缩放
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imageView;
}
//将要开始拖拽的时候调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
} //将要结束拖拽的时候调用
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSLog(@"%s", __FUNCTION__);
} //已经结束拖拽的时候调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"%s", __FUNCTION__);
}
感觉UIScrollView是为接下来所讲的做了一个铺垫,以便于实现之后图片页码的切换和滚动
在之后我们又讲了UIPageControl
UIPageControl:页码控制器,继承与UIControl
他和UIScrollView一样,也没有自己的初始化方法,同样要使用自己父类的方法,其具体创建方法如下所示
- (void)viewDidLoad
{
[super viewDidLoad];
//UIPageControl:页码控制器, 继承于UIControl
UIPageControl *pageControl = [[UIPageControl alloc] init];
pageControl.frame = CGRectMake(, , , );
pageControl.backgroundColor = [UIColor blackColor];
pageControl.numberOfPages = ;
//设置未选中的颜色
pageControl.pageIndicatorTintColor = [UIColor yellowColor];
//设置已选中的颜色
pageControl.currentPageIndicatorTintColor = [UIColor blueColor];
//设置只有一页时隐藏
pageControl.hidesForSinglePage = NO;
//关联方法
[pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:pageControl];
[pageControl release];
} - (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} - (void)changePage:(UIPageControl *)pageControl
{
//页码是从零开始的
NSLog(@"%d", pageControl.currentPage + );
}
下面我们来通过一个练习来进一步对这些空间作进一步的了解:
通过页面的滚动和页码的切换来调用方法进而使效果类似于我们看电子书一样翻页跳转, 下面我就来附上代码供大家参考:
- (void)changePage:(UIPageControl *)pageControl
{
if (pageControl.currentPage == ) {
[scrollView1 setContentOffset:CGPointMake(, ) animated:YES];
} else if (pageControl.currentPage == ) {
[scrollView1 setContentOffset:CGPointMake(, ) animated:YES];
} else if (pageControl.currentPage == ) {
[scrollView1 setContentOffset:CGPointMake( * , ) animated:YES];
}
} - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
pageControl1.currentPage = scrollView.contentOffset.x / ;
} - (void)close:(UIButton *)button1
{
//如果子视图的父视图被移除,那么这个子视图也会被移除
[button removeFromSuperview];
[scrollView1 removeFromSuperview];
[pageControl1 removeFromSuperview];
}
其中- (void)close:(UIButton *)button1 这个方法是用来跳转主页的, 就像我们在打开一款应用的时候上面都会显示一些新功能简介
- (void)changePage:(UIPageControl *)pageControl这个方法是用来使用翻页槽来进行换页操作的 然后待这些都完成后 我们只需要将这个文件的.m文件引入试图控制器就好了 也就是UIViewController, 下面就为大家附上效果动画图:
这些就是我们今天所学习的,渐渐的发现自己也慢慢的对这些小东西感兴趣了,也开始喜欢钻研琢磨一些新的东西, 虽然是零基础,但是我相信只要努力,没有什么是办不到的,也许刚开始你连代码都不知道是什么,但是这些都不重要, 重要的是胜不骄败不馁,懂得努力,知道奋斗才是最重要的,天分固然重要,但是只有天分却不知道珍惜那不就是等于白搭吗, 所以在这里告诉哪些和我一样对编程感兴趣的朋友,不要害怕,做自己想要做的, 只要感觉方向正确,那么我们就要付之于努力和行动,嘿嘿 好了各位, Byebye!
iOS:UI系列之UIScrollview和UIPagecontrol的更多相关文章
- IOS 欢迎页(UIScrollView,UIPageControl)
本文介绍了app欢迎页的简单实现.只有第一次运行程序时才说会出现,其余时间不会出现.下面是效果图. 代码如下:(如有不明白的可以评论我,我会详细讲解) // // ViewController.m / ...
- IOS UI 滚动视图 UIScrollView
UIScrollView 常用属性 scrollView.maximumZoomScale= 2.0; // 缩放最大比例 scrollView.minimumZoomScale = 0.2;// ...
- iOS:UI系列之UINavigationController
又到了总结的时间了,突然间感觉时间过得好快啊, 总觉的时间不够用,但是这也没办法啊, 只有自己挤时间了,虽然是零基础,但是这并不能代表什么啦,只要努力,收获总还是有的, 同时我也相信广大的博友肯定也有 ...
- 【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例
[iOS系列]-UIScrollView的介绍及结合UIPageControl实现图片播放的实例 第一:UIScrollView的常用属性 //表示UIScrollView内容的尺寸,滚动范围 @pr ...
- UI:UIScrollView、UIPageControl
一.UIScrollView的常⽤用属性 二.UIScrollView的常⽤用代理方法 三.UIPageControl的使⽤用 四.UIPageControl与UIScrollView的结合使⽤用 U ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- iOS开发系列--通知与消息机制
概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...
- iOS开发系列--网络开发
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
- iOS开发系列--让你的应用“动”起来
--iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建 ...
随机推荐
- mysql高可用方案MHA介绍
mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...
- Docker的简单认知
Docker images: docker image是一个只读打模板,用来创建Docker 容器 Docker Registers 互联网上存储images的地方 Docker containers ...
- C# Excel 读取为Datatable
最近项目用到的读取Excel 为DataTable 兼容2003.2007.2010.记录一下,以后会用到 引用 NPOI.dll 和 EPPlus.dll using System; using S ...
- Spring中的WebDataBinder浅析
Spring可以自动封装Bean,也就是说可以前台通过SpringMVC传递过来的属性值会自动对应到对象中的属性并封装成javaBean,但是只能是基本数据类型(int,String等).如果传递过来 ...
- CentoS7装机
按delete进入BIOS 选择UEFI 网上关于CentOS 7 的安装教程挺多的,但在前期的引导配置上很多都没有写清楚,让人很郁闷,以致于昨天安装的时候总是到不了安装界面.经过一番胡乱倒腾,终于找 ...
- 为什么要采用外部js文件
这篇文章主要讲的是为什么要采用外部js文件,有什么好处. 为什么不把js内嵌在html中呢,这样不是好分析吗?对,这样你是好分析,同样的别人呢?不内嵌在html中有如下原因: 安全性: 只要查看页 ...
- HTML5简介、视频
HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独 ...
- apache用户认证、默认主机、301跳转
我更正论坛一个同学帖子(今天坑我一下午):原文http://www.apelearn.com/bbs/foru ... 3%BB%A7%C8%CF%D6%A4 apache用户认证.默认主机.301跳 ...
- JavaWeb学习笔记--2.3内置对象
参考资料:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 目录 1. JSP内置对象分类2. 属性保存范围 2.1 pag ...
- 配色问题lingo实现
大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang !调配颜色 要依次调配红.兰.白.黑.黄五种颜色 红 兰 白 黑 黄 红 0 6 1 ...