UI-7-UIScrollView

#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
本站公眾號
   歡迎關注本站公眾號,獲取更多信息