转眼间,又是一天,就这样忙忙碌碌的一天一天的过着, 不过还好,不是浑浑噩噩的,也算是小有所成,劳有所获吧,嘿嘿!

  好了,到了总结的时间啦, 下面就为大家简单讲解下我今天学习的内容吧,希望对各位都有所帮助吧,同时也是对自己的一种激励,最终实现共赢吧 嘿嘿!

  首先,在上课时间我们先简单讲述了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的更多相关文章

  1. IOS 欢迎页(UIScrollView,UIPageControl)

    本文介绍了app欢迎页的简单实现.只有第一次运行程序时才说会出现,其余时间不会出现.下面是效果图. 代码如下:(如有不明白的可以评论我,我会详细讲解) // // ViewController.m / ...

  2. IOS UI 滚动视图 UIScrollView

    UIScrollView 常用属性 scrollView.maximumZoomScale= 2.0; //  缩放最大比例 scrollView.minimumZoomScale = 0.2;// ...

  3. iOS:UI系列之UINavigationController

    又到了总结的时间了,突然间感觉时间过得好快啊, 总觉的时间不够用,但是这也没办法啊, 只有自己挤时间了,虽然是零基础,但是这并不能代表什么啦,只要努力,收获总还是有的, 同时我也相信广大的博友肯定也有 ...

  4. 【iOS系列】-UIScrollView的介绍及结合UIPageControl实现图片播放的实例

    [iOS系列]-UIScrollView的介绍及结合UIPageControl实现图片播放的实例 第一:UIScrollView的常用属性 //表示UIScrollView内容的尺寸,滚动范围 @pr ...

  5. UI:UIScrollView、UIPageControl

    一.UIScrollView的常⽤用属性 二.UIScrollView的常⽤用代理方法 三.UIPageControl的使⽤用 四.UIPageControl与UIScrollView的结合使⽤用 U ...

  6. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  7. iOS开发系列--通知与消息机制

    概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...

  8. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  9. iOS开发系列--让你的应用“动”起来

    --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建 ...

随机推荐

  1. View事件传递之父View和子View之间的那点事

    Android事件传递流程在网上可以找到很多资料,FrameWork层输入事件和消费事件,可以参考: Touch事件派发过程详解 这篇blog阐述了底层是如何处理屏幕输,并往上传递的.Touch事件传 ...

  2. 将excel的.xlsx文件转成数据库文件.db的方法

    1.下载好工具SQLite Expert Professional 3 ,晚上有很多,自行百度. 2.打开.xls文件,将文件另存为.csv文件.说明一下: 可以将xls文件看作是数据库里的一个表.所 ...

  3. image即时上传

    function preview_upload(input, img_div_id){ var img_id = img_div_id.replace("itempic_previewDiv ...

  4. 分页搜索查询sql

    select * from (select t.*,rownum no from " + table + " t where scbj=0)where (no>(" ...

  5. SQL Server 2005中的分区表(三):将普通表转换成分区表

    在设计数据库时,经常没有考虑到表分区的问题,往往在数据表承重的负担越来越重时,才会考虑到分区方式,这时,就涉及到如何将普通表转换成分区表的问题了. 那么,如何将一个普通表转换成一个分区表 呢?说到底, ...

  6. AngularJs练习Demo1

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  7. C#设置按钮三态背景图片

    1.闪电事件,注意添加手动或者点击按钮->属性中的闪电->下面对应各种事件 在上面: private void button1_MouseHover(object sender, Even ...

  8. [QT]QT概述

    QT概述 基于C++的GUI开发框架,跨平台.Qt 是一个用于桌面系统和嵌入式开发的跨平台应用程序框架. QT是挪威TROLLTECH公司开发的跨平台C++工具,在UNIX下非常出名:他的宗旨是“一次 ...

  9. MYSQL常用简单语句

    使用SQL语法大写,增加可读性(小写部分就是自己数据库写的表/字段喽,具体你懂得...). 创建数据库:CREATE DATABASE mysql_db;删除数据库:DROP DATABASE mys ...

  10. php统计文件夹大小

    function dirsize($dir){ @$dh = opendir($dir); $size = 0; while($file = @readdir($dh)){ if($file!=&qu ...