本文希望对那些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);
}
里面可能有某些东西遗漏,或者解释不够准确的地方,欢迎指出,必做修改。