UIScrollView的常用属性和方法

来源:互联网 发布:立体矢量图形软件 编辑:程序博客网 时间:2024/06/09 15:51
#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

0 0