ScrollView的基本用法丶代理方法


屬性:

- (void)viewDidLoad {
    [super viewDidLoad];
    _scrollView.backgroundColor = [UIColor redColor];
    //設置contentSize(必須設置)
    _scrollView.contentSize = CGSizeMake(400, 667);
    //偏移量
    _scrollView.contentOffset = CGPointMake(100, 0);
    //contentInset(在原有的基礎上調整內容滾動區域的大小)
    //_scrollView.contentInset = UIEdgeInsetsMake(-100, 0, 0, 0);
    
    //鎖定方向(當系統識別滾動方向的時候,會把另外一個方向鎖定,如果識別不了,就不鎖定方向)
    _scrollView.directionalLockEnabled = YES;
    //反彈效果(默認為yes)
    _scrollView.bounces = YES;
    //默認是no,假如是yes並且bounces是yes,甚至如果內容大小小於bounds的時候,允許垂直拖動
    _scrollView.alwaysBounceVertical = YES;
    //分頁(默認no)
    _scrollView.pagingEnabled = YES;
    //滾動(默認yes允許滾動)
    _scrollView.scrollEnabled = YES;
    
    //滾動條
    //showsHorizontalScrollIndicator默認yes 顯示
    _scrollView.showsHorizontalScrollIndicator = NO;
    //滾動條滾動的范圍(垂直滾動條滾動范圍上下各縮小50)
    _scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(50, 0, 50, 0);
    //樣式
    _scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    // Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidLoad {
    [super viewDidLoad];
    //創建並添加scrollView
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(100, 200, 200, 300)];
    [self.view addSubview:scrollView];
    
    scrollView.backgroundColor = [UIColor redColor];
    //設置內容視圖的大小
    scrollView.contentSize = CGSizeMake(375, 667);
    //設置內容視圖
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 375, 667)];
    imageView.image = [UIImage imageNamed:@"new_feature_1"];
    [scrollView addSubview:imageView];
    
    _imageView = imageView;
    //設置代理
    scrollView.delegate = self;
    
    
    //[self performSelector:@selector(changeScrollViewContentOffSet:) withObject:scrollView afterDelay:3];
    
    
    //設置縮放內容視圖的縮放比例范圍
    scrollView.minimumZoomScale = 0.5;
    scrollView.maximumZoomScale = 1.5;
    //當縮放比例超出范圍之后,是否有反彈效果(no:不會超出范圍,yes:超出范圍之后反彈)
    scrollView.bouncesZoom = YES;
    
    //屬性設置滾動至頂部
    //scrollView.scrollsToTop = YES;
    // Do any additional setup after loading the view, typically from a nib.
}

-(void)changeScrollViewContentOffSet:(UIScrollView *)scrollView{
    [scrollView setContentOffset:CGPointMake(0, 300) animated:YES];
}


#if 0
#pragma mark -UIScrollViewDelegate 滾動
//當scrollView滾動的時候,不停調用(可以監聽scrollView的contentOffset)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    //NSLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
    //NSLog(@"decelerating:%d",scrollView.decelerating);
    //NSLog(@"dragging:%d",scrollView.dragging);
    //NSLog(@"tracking:%d",scrollView.tracking);
    NSLog(@"%s",__func__);
}


//開始拖動的時候調用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    //NSLog(@"tracking:%d",scrollView.tracking);
    NSLog(@"%s",__func__);
}

// called on finger up if the user dragged. velocity is in points/millisecond. targetContentOffset may be changed to adjust where the scroll view comes to rest
//將要結束拖動
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
//    NSLog(@"velocity:%@",NSStringFromCGPoint(velocity));
//    NSLog(@"targetContentOffset:%@",NSStringFromCGPoint(*targetContentOffset));
    //強制設置scrollView的偏移量
    //*targetContentOffset = CGPointMake(0, 200);
    NSLog(@"%s",__func__);
}

// 已經結束拖動
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    //NSLog(@"dragging:%d",scrollView.dragging);
    NSLog(@"%s",__func__);
}

//將要開始減速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    //NSLog(@"decelerating:%d",scrollView.decelerating);
    NSLog(@"%s",__func__);
}

//減速完成(停止)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    //NSLog(@"contentOffset:%@",NSStringFromCGPoint(scrollView.contentOffset));
    NSLog(@"%s",__func__);
}

// called when setContentOffset/scrollRectVisible:animated: finishes. not called if not animating
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
    NSLog(@"%s",__func__);
}
#endif
#pragma mark -UIScrollViewDelegate(縮放)
//指定縮放視圖
- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
    return _imageView;
}
//縮放之前調用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view {
    NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
}
//完成縮放
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale{
    NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
}
//縮放時調用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
    NSLog(@"%s,zooming:%d",__func__,scrollView.zooming);
}

#pragma mark -UIScrollViewDelegate(滾動至頂部)
//允許滾動至頂部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
    return YES;
}

//已經滾動至頂部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
    NSLog(@"加載新數據,刷新界面");
}

 


免責聲明!

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



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