#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