标签:
本文希望对那些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); }
里面可能有某些东西遗漏,或者解释不够准确的地方,欢迎指出,必做修改。
标签:
原文地址:http://www.cnblogs.com/zxh-iOS/p/4774895.html