ScrollView各属性,及代理方法汇总

  本文希望对那些UI初级学者,提供些帮助.

   笔者感言:学习scrollView,可能再以后的工作中用的不是太多,但它的两个子类,相信用的比例绝对很大,UITableVIew和UICollectionView。大家都知道,OC是一门面向对象,基于C语言封装而出的一门高级语言。面向对象的三大特性:封装、继承、多态。说到继承,子类不仅仅能继承父类的属性和方法,其代理也能继承,所以ScrollView的代理方法,及各属性的设置,在UITableView及UICollectionView中也可以使用,看博客的人,可以去尝试一下。

     学习任何一个控件,你都可以点进这个控件去看它的UIKIT的中的内容,这样,它所有的属性,方法,及代理方法,你都可以找到。这种方式可以帮你省去许多时间,你也不需要去死记一些东西,只需要点进去找一下就行。

  闲话少说,让我们看一下scrollView的用法。

//
//  ViewController.h
//  scrollView01
//
//  Created by Mac on 15-7-14.
//  Copyright (c) 2015年 Mac. All rights reserved.
//

#import <UIKit/UIKit.h>

//在.h文件中,签订UIScrollView的代理方法
@interface ViewController : UIViewController<UIScrollViewDelegate>


@end
//
//  ViewController.m
//  scrollView01
//
//  Created by Mac on 15-7-14.
//  Copyright (c) 2015年 Mac. All rights reserved.
//

#import "ViewController.h"
//scrollview的用法
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
//创建scrollView
    UIScrollView * scro = [[UIScrollView alloc]initWithFrame:CGRectMake(100, 100, 200, 300)];
    [self.view addSubview:scro];
    scro.delegate = self;
    scro.backgroundColor = [UIColor orangeColor];
    //设置内容大小
    scro.contentSize = CGSizeMake(400, 400);
//用来理解内容大小和frame的区别
    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 390, 390)];
    UIImage *image = [UIImage imageNamed:@"20120618101.jpg"];
    imageView.image = image;
    NSLog(@"%@",imageView.image);
    [scro addSubview:imageView];
    //是否显示水平和垂直滚动条
  /*  scro.showsHorizontalScrollIndicator = NO;
    scro.showsVerticalScrollIndicator = NO;
    //是否有弹簧效果
    scro.bounces = NO;  */
    //增加额外的滚动区域
    scro.contentInset = UIEdgeInsetsMake(30, 30, 30, 30);
    //设置滚动条样式
    scro.indicatorStyle = UIScrollViewIndicatorStyleBlack;
    //设置偏移量
    scro.contentOffset = CGPointMake(-20, -20);
    //是否分页滑动
    scro.pagingEnabled = YES;
    //是否开启滚动
//    scro.scrollEnabled = NO;
}
#define mark代理方法
//滑动时调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
//    NSLog(@"%@",scrollView);
}

//开始拖动时调用到松手
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    NSLog(@"sssss%@",scrollView);
}

//结束拖动,手指离开屏幕,decelerate(是否是减速状态)
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    
//    decelerate == YES?NSLog(@"减速"):NSLog(@"停止");
}
//开始减速时调用
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
//    NSLog(@"开始减速了");
}
//减速停止时调用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
//    NSLog(@"减速停止");
}

//拖动,手指离开屏幕
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
    //获取坐标,只能使用指针
    float tagetx = targetContentOffset->x;
//    NSLog(@"%.2f",tagetx);
}

 里面可能有某些东西遗漏,或者解释不够准确的地方,欢迎指出,必做修改。

原文地址:https://www.cnblogs.com/zxh-iOS/p/4774895.html