#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