UIScrollView 幾乎所有的屬性和方法


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:kScreenBounds];
    scrollView.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:scrollView];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.backgroundColor = [UIColor blueColor];
    button.frame = CGRectMake(10, 10, kScreenWidth - 20, 100);
    [scrollView addSubview:button];
    // 1. 默認 CGSizeZero == CGSizeMake(0, 0)
    // contentSize 設置可以滾動的范圍
    scrollView.contentSize = CGSizeMake(1000, 1000);
    // 2. 默認 CGPointZero
    // contentOffset 偏移量, 滾動的位置
    // 不設置contentSize, contentOffset也可以改變
    // 問題: 改變contentOffset什么變了?
    // 答案: 改變contentOffset, 實質上是對scrollView的bounds進行了改變.(改變子視圖的坐標)
    NSLog(@"scrollView frame is : %@", NSStringFromCGRect(scrollView.frame));
    NSLog(@"scrollView bounds is : %@", NSStringFromCGRect(scrollView.bounds));
    scrollView.contentOffset = CGPointMake(0, 500);
    NSLog(@"scrollView frame is : %@", NSStringFromCGRect(scrollView.frame));
    NSLog(@"scrollView bounds is : %@", NSStringFromCGRect(scrollView.bounds));
    // 3. contentInset
    // 添加滾動區域四周的滾動范圍
    // UIEdgeInsets age = {10, 10, 10, 10};
    scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);
    // 4. directionalLockEnabled
    // 鎖定垂直或水平滾動(45度角, 鎖會失效)
    scrollView.directionalLockEnabled = YES;
    // 5. bounces 回彈效果
    // 邊緣彈動動畫關閉 NO
    // scrollView.bounces = NO;
    // 6. alwaysBounceVertical 在沒有垂直方向的滾動范圍時(0), 保證垂直方向的回彈效果
    scrollView.alwaysBounceVertical = YES;
    // 7. alwaysBounceHorizontal 在沒有水平方向的滾動范圍時(0), 保證垂直方向的回彈效果
    scrollView.alwaysBounceHorizontal = YES;
    // 8. pagingEnabled 按頁滾動
    scrollView.pagingEnabled = YES;
    // 9. scrollEnabled 滾動視圖能否滾動, 默認為YES, NO(不可以滾)
    scrollView.scrollEnabled = YES;
    // 10. showsHorizontalScrollIndicator 是否顯示水平滾動指示器
    scrollView.showsHorizontalScrollIndicator = YES;
    // 11. showsVerticalScrollIndicator 是否顯示垂直滾動的指示器
    scrollView.showsVerticalScrollIndicator = YES;
    // 12. 滾動指示器的邊距
    scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 100, 0, 0);
    // 13. indicatorStyle 滾動指示器的顏色(深色背景丶淺色背景)
    scrollView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
    // 14.
    // scrollView.tracking 用戶有沒有開始拖動
    // scrollView.tracking
    // scrollView.dragging 用戶是否正在拖動
    // scrollView.dragging
    // scrollView.decelerating 是否減速中
    // scrollView.decelerating
    // 14. scrollsToTop 滾動視圖, 雙擊狀態欄手勢是否存在
    scrollView.scrollsToTop = NO;
    // 15. 代理
    scrollView.delegate = self;
    // 16. 鍵盤消失模式(一般用這個UIScrollViewKeyboardDismissModeOnDrag)
    scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
    // 測試:
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 300, kScreenWidth - 20, 200)];
    textField.backgroundColor = [UIColor cyanColor];
    [scrollView addSubview:textField];
    // 17. 縮放系數
    // 如果想進行視圖放大縮小, 必須實現viewForZoomingInScrollview:
    scrollView.minimumZoomScale = 2;
    scrollView.maximumZoomScale = 6;
}
// 與其想要縮放的子視圖綁定, scrollView的contentSize會跟隨這個子視圖改變
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return scrollView.subviews.firstObject;
}
// 滾動視圖滾動, 就會執行
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    // tracking 用戶觸摸
    if (scrollView.tracking) {
        NSLog(@"正在拖動滾動");
    } else {
          NSLog(@"自己滾動中");
    }
    // dragging 用戶開始滑動
    if (scrollView.dragging) {
        NSLog(@"");
    }
    // decelerating 用戶觸摸結束
    if (scrollView.decelerating) {
        NSLog(@"");
    }
}
// 將要開始拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
   // NSLog(@"開始拖拽");
}
// 將要結束拖拽
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
    
}
// 將要開始進行減速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
   // NSLog(@"開始減速");
}
// 已經結束減速
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    //NSLog(@"結束減速");
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM