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中如何使用图层精简非交互式绘图,如何通过核心动画创建 ...
随机推荐
- EMCA常用命令 【weber整理必出精品】
EMCA常用命令 创建一个EM资料库 emca -repos create 重建一个EM资料库 emca -repos recreate 删除一个EM资料库 emca -repos drop 配置数据 ...
- CC开发问题一
CC编译成功,启动失败,debug状态下报错如下,未能加载文件或程序集 这个问题查了一些资料,http://blog.csdn.net/shellching/article/details/82947 ...
- hdu3714 三分
Error Curves Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- C++类中的静态成员变量与静态成员函数的使用
代码: #include <iostream> #include <string> #include <cstdio> using namespace std; c ...
- javascript的DOM操作(二)
<html> <title>学习DOM</title> <a id="wen">文本</a> <input nam ...
- DNF(一.YUM已死,DNF代之)
Yum还没学好呢,突然听到已经要被抛弃了.恐慌至极.. 在最新版的Fedora 22 抛弃了Yum包管理器,取而代之的是DNF.. 那么搜搜 Fedora 22 Release Note.. 官方给出 ...
- CSS3笔记(一)
最开始的时候 CSS3产生的一个新属性是一个浏览器的私有的,然后W3C 可能会拿来采用做个标准,再没公布标准之前就只能用私有属性(加前缀)来表达各自厂商的实现,主要是CSS3刚出现那会儿,它暗示该CS ...
- js修改window对象中的url历史记录
//页面地址:http://localhost/11/account.html//访问页面后,地址变为:http://localhost/11/account.html?type=banana con ...
- 如何让你的 footer 总是在浏览器底部无论什么分辨率无论什么浏览器?
一个可以用的CSS驱动的可粘在底部的Footer 我们曾经都或多或少的试过用CSS来把Footer固定在底部的经理,但是他们总是不能正常的粘在底部,不是吗?可喜的是,痛苦的研究如何让footer粘在底 ...
- 扩展vbox硬盘大小
1.使用VboxManage list hdds查看所有安装的虚拟机信息 2.找到你要扩展硬盘容量虚拟机的UUID,使用modifyhd命令扩展硬盘大小 VBoxManage modifyhd U ...