文档章节

iOS开发之UIScrollView基本知识

鹿微微鹿
 鹿微微鹿
发布于 2016/04/25 20:31
字数 760
阅读 103
收藏 0


#import "FJViewController.h"


@interface FJViewController ()<UIScrollViewDelegate>


@end


@implementation FJViewController



- (void)viewDidAppear:(BOOL)animated{

    

    [super viewDidAppear:animated];

    UIScrollView *scroll = (UIScrollView *)[self.view viewWithTag:101];

    

    //动画去更新偏移量

    

    [scroll setContentOffset:CGPointMake(1000, 700) animated:YES];

}


- (void)viewDidLoad {

    [super viewDidLoad];

   

    //1.创建UIScrollView对象

    //创建UIScrollView的时候,系统会自动给UIScrollView

    //创建一个子视图,专门负责UIScrollView上内容(UIScrollView子视图)的显示;

    //子视图默认坐标(0,0),大小是UIScrollView的大小;

    UIScrollView *scrollView = [[UIScrollView alloc]

                                initWithFrame:self.view.bounds];

    //2.显示在界面上

    [self.view addSubview:scrollView];

    

    scrollView.tag = 101;

    

    

    //3.设置背景颜色

    scrollView.backgroundColor = [UIColor redColor];

    

    //4.scrollView上显示一张图片

    UIImage *image = [UIImage imageNamed:@"1092.jpg"];

    UIImageView *imageView = [[UIImageView alloc]

                              initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];

    imageView.image = image;

    imageView.tag = 100;

    

    [scrollView addSubview:imageView];

    

    //============scrollView核心属性================================

    //5.scrollView滚动起来的前提

    //scrollView的内容视图的大小大于scrollViewframe的大小

    //内容视图的宽度大于scrollView的宽度,滚动视图可以左右滚动

    //内容视图的高度大于scrollView的高度,滚动视图可以上下滚动

    

    //scrollView滚动起来就是改变内容视图的大小

    scrollView.contentSize = CGSizeMake(image.size.width,image.size.height);

    

    //6.设置偏移量

    scrollView.contentOffset = CGPointMake(0, 600);

  //  [scrollView setContentOffset:CGPointMake(500, 500) animated:YES];


    

    //!!!设置代理

    scrollView.delegate = self;

    

    //==================其他属性====================

    //7.contentInset

    //设置content视图到scrollView上左下右的边距;

    //默认是(0,0,0,0)

    [scrollView setContentInset:UIEdgeInsetsMake(20, 20, 20, 20)];

    

    //8.pagingEnabled是否可以翻页

    //每次滚动都是滚动一页;(如果是左右滚动

    //就是滚动scrollView的宽度)

    //如果上下滚动就是滚动scrollView高度;

    scrollView.pagingEnabled = YES;

    

    //9.设置是否可以滚动

    [scrollView setScrollEnabled:YES];


    //10.设置是否显示滚动条

    scrollView.showsVerticalScrollIndicator = YES;

    scrollView.showsHorizontalScrollIndicator = NO;


    //11.设置滚动条的样式

    [scrollView setIndicatorStyle:UIScrollViewIndicatorStyleWhite];


    //===============缩放相关====================

    //想要对scrollView进行缩放,实质是对添加到

    //scrollView内容进行缩放

    //1.最小缩放比例(默认是1)

    scrollView.minimumZoomScale = 0.5;

    

    //2.最大缩放比例(默认是1)

    scrollView.maximumZoomScale = 2;

    

    

}



#pragma mark - UIScrollView 的代理


//MARK:缩放相关

//返回值就是需要缩放的对象

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

    

 

    return [scrollView viewWithTag:100];

    

    

    

}


//MARK:滚动相关

//scrollView滚动的时候实时调用这个方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    

    //一般在这里获取scrollView的偏移量;

    CGPoint point = scrollView.contentOffset;

    NSLog(@":%@",NSStringFromCGPoint(point));

    if (point.y <= 0) {

        

        scrollView.contentOffset = CGPointMake(point.x

                                               , 0);

    }

    

}

//MARK:拖拽

//将要开始滚动的时候调用这个方法

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{

    

    NSLog(@"拖拽");

    

    

}

//MARK:将要停止拖拽的时候(将要松手的时候)

//参数1:委托

//参数2:停止拖拽的时候xy方向的加速度

//参数3:滚动停止的时候scrollView的偏移量;(停止滚动的时候的位置信息)

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView

withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)

  targetContentOffset{

    

    //NSLog(@"%@",);

    

    

    

}


//已经停止拖拽

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

    

    NSLog(@"停止拖拽");

    

    

}

//将要开始减速

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{

    

    

    NSLog(@"开始减速");

    

}



//相当于已经停止滚动的方法

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{


    NSLog(@"已经停止滚动~~~~~");

    

    

}


//已经停止滚动动画

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{

    

    //这个停止是通过[scrollView setContentOffset:animation]产生的动画;

    

   

    

    NSLog(@"停止动画");

    

    

}


//设置点击状态栏是否可以回到顶部,默认是yes

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView

{

    return YES;

    

}



@end


















© 著作权归作者所有

鹿微微鹿
粉丝 8
博文 116
码字总数 71882
作品 0
程序员
私信 提问
IOS开发系列--无限循环的图片浏览器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/47753201 --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在...

KenshinCui
2015/08/18
0
0
使用 Interface Builder 兼容 iOS6 和iOS7

当你在更新你的App到iOS 7的平台时遇到最大的挑战之一就是确保不要遗忘那些还在使用iOS 6平台的用户,在此我们提供一些建议使你的App应用在iOS 6和iOS 7上同时保留视觉吸引力和技术功能. 此图...

isaced
2014/01/15
13.4K
12
一步一步学习 iOS 6 编程(第四版)正式发布

所有范例程序及其截图都采用Xcode 4.4 和Xcode 4.5 最新版开发工具,本书包含了最新的iOS 6 开发技术,如自动布局(Auto Layout)、集合视图(Collection View)等等。 新增内容包括:分割视...

entlib
2012/10/25
837
2
【IOS视频教学】三个月学会IOS开发

一、windows系统下安装虚拟机-mac系统-视频教程-安装件全套下载:http://www.wyzc.com/forum/56212.html 二、史上最佳0基础Swift语言视频教程下载链接:http://www.wyzc.com/forum/56744.htm...

马洪伟
2014/12/25
440
0
iOS高仿微信、仪表盘、图片标注图片滤镜、高斯模糊、上拉加载、下拉刷新等源码

iOS精选源码 Swift-图片画框标注(http://www.code4app.com/thread-29884-1-1.html) Swift版的上拉加载, 下拉刷新控件(一句话集成, 超级易用)(http://www.code4app.com/thread-29885-1-1.html...

sunnyaigd
2018/05/22
31
0

没有更多内容

加载失败,请刷新页面

加载更多

arduino项目-1. 模拟楼道灯

@toc 1.1 情景说明 说明 漆黑的夜晚,当有人非法进入一所房屋,房屋内的灯在恰当的时间亮起,也许会有效阻止非法活动的继续。 效果展示 1.2 实验器材 器材名称 数量 继电器 1 人体红外感应器...

acktomas
10分钟前
1
0
Nacos 常见问题及解决方法

Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈。在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方...

阿里云官方博客
17分钟前
2
0
pinyin4j 满足中文转拼音的需求

引入依赖 // https://mvnrepository.com/artifact/com.belerweb/pinyin4j //汉字转拼音compile group: 'com.belerweb', name: 'pinyin4j', version: '2.5.1' 写入中文转拼英的工具......

edison_kwok
22分钟前
2
0
IPSE接入Substrate/Polkadot插槽实现互操作性的运行原理

Substrate框架将区块链的众多功能都模块化,对于开发者来说,只是一个选择的问题,同时还保持了众多的可以定制的功能和模块,比如底层通信模块,比如账户体系,比如共识机制等都是可以自己定...

IPSE
28分钟前
153
0
linux配置安装phpMyAdmin的步骤记录

1、首先在phpMyAdmin官方网站 http://www.phpmyadmin.net/downloads下载源码包,或者通过脚本之家进行下载://www.jb51.net/codes/405261.html ,下载后上传到服务器解压即可,或者通过Linux...

蜗牛女孩
29分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部