您的位置:首页 > 产品设计 > UI/UE

UIScrollView的常用属性和方法

2015-12-10 10:07 716 查看
#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>
{
UIImageView *imgView;
}
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

#pragma mark 课程要点
/*

* UIScrollView的概念

* UIScrollView的重要属性

* 解决登录注册界面的一个常见问题

* UIScrollView常用属性

* 利用scrollView放大图片

*/

#pragma mark UIScrollView的概念
/*
*  UIScrollowView是一个能够滚动的试图控件

*  UIScrollowView继承于UIView

*  通过滚动来显示更多的内容

*  举例:手机的设置界面
*/

//创建UI控件的三步走

UIScrollView *scrollowView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 66, 320, 400)];
scrollowView.backgroundColor = [UIColor grayColor];

//测试View
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 270, 430)];
view.backgroundColor = [UIColor redColor];
[scrollowView addSubview:view];

//测试View1
UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0,0,50, 50)];
view1.backgroundColor = [UIColor yellowColor];
[scrollowView addSubview:view1];

//将控制器自带的view更换为scrollowView
self.view = scrollowView;

//至此运行一下,试着滚动屏幕,会发现效果跟UIView一样,不要急,继续往下看。

#pragma mark UIScrollowView的常用属性

/*

* contentSize

* contentSize表示UIScrollView内容的尺寸,默认为(0,0)

* UIScrollowView的frame与contentSize的关系

* frame的可以理解为一面镜子,contentSize可以理解为小明的脸。

* 如果镜子的尺寸小于小明脸的尺寸,咱们照镜子的时候就需要来回移动脸部,以保证看完整个脸部

* 如果镜子的尺寸大于等于小明脸的尺寸,此时小明不需要移动就能看完整个脸部。

*/

//   scrollowView.contentSize = CGSizeMake(420, 500);

/*
* contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,默认为(0,0)

* 不设这个值的话,UIScrollView不滑动的话就默认从(0,0)开始显示,设置这个值以后,咱就能控制UIScrollow在滑动之前显示scroollview的哪一部分。

* 就好比小明拿个手掌大的小镜子,他想直接看到鼻子上是否有痘痘,通过设置contentOffset能够立马定位到鼻子。

*/
//这样设置完以后,就会直接使红色在左上角
//    scrollowView.contentOffset = CGPointMake(50,50);

/*
* contentInset能够在UIScrollView的4周增加额外的滚动区域
*
*/
//    scrollowView.contentInset = UIEdgeInsetsMake(20, 20, 20,20);

//PS:contentInset具体的用法,在下面的这个例子有更为直观的体现

#pragma mark 解决登录注册界面的一个常见问题

/*
* 新建一个工程,将下面注释的代码,粘贴在首页控制器的viewDidLoad方法里。
*/

//
//    UIScrollView *scrollow = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
//
//    //给UIScorllView设置内容大小
//    scrollow.contentSize = CGSizeMake(320, 480);
//
//    //给UIScrollView增加滚动区域,254是键盘的高度
//    scrollow.contentInset = UIEdgeInsetsMake(0, 0, 254, 0);
//    scrollow.backgroundColor = [UIColor redColor];
//
//    self.view = scrollow;
//
//    UITextField *textFiled = [[UITextField alloc]initWithFrame:CGRectMake(0, 420, 100, 60)];
//
//    textFiled.backgroundColor = [UIColor grayColor];
//
//    [scrollow addSubview:textFiled];
//
//    UITextField *textFiled1 = [[UITextField alloc]initWithFrame:CGRectMake(0, 100, 100, 60)];
//
//    textFiled1.backgroundColor = [UIColor grayColor];
//
//    [scrollow addSubview:textFiled1];

#pragma mark UIScrllView常用属性

//是否显示横向滚动条
scrollowView.showsHorizontalScrollIndicator = YES;
//是否显示纵向滚动条
scrollowView.showsVerticalScrollIndicator = NO;

//测试view2
UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(320*3, 0, 320, 480)];
view2.backgroundColor = [UIColor blueColor];
[scrollowView addSubview:view2];

//将实际内容的宽设置为屏幕宽的四倍,高还是屏幕的高
scrollowView.contentSize = CGSizeMake(320*4, 480);

//将内容分页显示
scrollowView.pagingEnabled = YES;

//是否需要弹簧效果
scrollowView.bounces = YES;

//设置scroll能否滚动
scrollowView.scrollEnabled = YES;

#pragma mark 利用scrollView放大图片

//    //将之前放在scrollView上的所有试图移除掉
//    [view removeFromSuperview];
//    [view1 removeFromSuperview];
//    [view2 removeFromSuperview];
//
//    //放上去一个图片
//    UIImage *img = [UIImage imageNamed:@"李江.JPG"];
//    imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
//    imgView.image = img;
//    scrollowView.contentSize = CGSizeMake(img.size.width, img.size.height);
//
//    [scrollowView addSubview:imgView];
//
//
//    scrollowView.maximumZoomScale=10.0;//最大倍率(默认倍率)
//    scrollowView.minimumZoomScale=1.0;//最小倍率(默认倍率)
//    scrollowView.decelerationRate=5.0;//减速倍率(默认倍率)
//
//    scrollowView.delegate = self;
}

//告知要放大哪个试图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imgView;
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: