iOS开发之UIScrollView

来源:互联网 发布:淘宝购物车营销工具 编辑:程序博客网 时间:2024/05/16 10:21
//
// RootViewController.m
// LessonUIScrollView
//
// Created by 楠少轻狂 on 14-8-29.
// Copyright (c) 2014年 lanouhn. All rights reserved.
//

#import "RootViewController.h"

@interface RootViewController ()<UIScrollViewDelegate>

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor greenColor];
/**
* UIScrollView 是iOS中的滑动控件,用来解决当要显示的内容超出视图的范围时,可以通过滑动的方式查看视图的所有内容,它是滑动控件的基类,以后所要学的UITableView,UITextView都是继承自UIScrollview的
*
*/

UIScrollView * scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 20, 280, 528)];
scrollView.tag = 200;
//设置内容页的大小
//如果想让视图滑动,内容页大小一定要比Scrollview页大
scrollView.contentSize = CGSizeMake(280, 528);
//内容区域相对于frame上下左右从哪儿显示(一般不常用)
// scrollView.contentInset = UIEdgeInsetsMake(10, 10, 0, 0);
//设置内容区域的偏移量(修改scrollview左上角的点距离自身坐标系坐标原点的位置,修改bounds的origin)
// scrollView.contentOffset = CGPointMake(300, 0);
// [scrollView setContentOffset:CGPointMake(300, 0) animated:YES];
//设置scrollview能否滑动
// scrollView.scrollEnabled = NO;
//隐藏水平滑动指示器
scrollView.showsHorizontalScrollIndicator = NO;
//隐藏垂直滑动指示器
scrollView.showsVerticalScrollIndicator = NO;
//关闭滑动式的回弹效果
scrollView.bounces = YES;
//设置当点击状态条时,scrollview能否滑动到最顶端
scrollView.scrollsToTop = YES;
//设置scrollview是否可以整屏滑动(一次滑动整个scrollview的大小)
// scrollView.pagingEnabled = YES;
//scrollView的代理
scrollView.delegate = self;
//设置最大缩放比例
scrollView.maximumZoomScale = 4.0;
//设置最小缩放比例
scrollView.minimumZoomScale = 1.0;
scrollView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:scrollView];
[scrollView release];

//scrollView上添加图片
UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height)];
imageView.image = [UIImage imageNamed:@"011.jpg"];
imageView.tag = 100;
[scrollView addSubview:imageView];
[imageView release];

UIButton * btn = [UIButton buttonWithType:UIButtonTypeSystem];
btn.frame = CGRectMake(270, 540, 50, 28);
btn.backgroundColor = [UIColor orangeColor];
[btn setTitle:@"还原" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(reset:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}

//还原图片大小方法
- (void)reset:(UIButton *)btn
{
UIScrollView * scrollview = (UIScrollView *)[self.view viewWithTag:200];
[scrollview setZoomScale:1.0 animated:YES];
}

#pragma mark - UIScrollViewDelegate
//实现UIScrollViewDelegate中的方法
//1.只要scrollView滑动就会触发(会触发多次)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
}

//只要缩放就会触发
- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2)
{
NSLog(@"%s", __FUNCTION__);
}

//当将要拖拽scrollview时触发,手指接触scrollview并且将要滑动时触发
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
}

//当结束拖拽时触发,(手指将要离开屏幕时)
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0)
{
NSLog(@"%s", __FUNCTION__);
}

//当结束拖拽时触发(手指离开屏幕)
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"%s", __FUNCTION__);
}

//当scrollview滑动将要减速时触发(将要停止滑动)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
}

//当scrollview结束减速时触发(停止滑动)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
// [scrollView setContentOffset:CGPointMake(300, 0) animated:YES];
NSLog(@"%s", __FUNCTION__);
}

//当设置scrollview 有一个动画效果时,该方法触发
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
}

//用来设置要缩放的scrollview上面的哪一个子视图,只能是子视图,不能是scrollview本身
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return [scrollView viewWithTag:100];
}

//当将要开始缩放时触发
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2)
{
NSLog(@"%s", __FUNCTION__);
}

//当结束缩放时触发
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
NSLog(@"%s", __FUNCTION__);
}

//只要当scrollToTop属性设置为YES时,该方法才会触发,进一步询问点击状态条是否有效果
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
return YES;
}

//当点击状态条,并且scrollview滑动到顶端时触发
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
NSLog(@"%s", __FUNCTION__);
}



- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/

@end
0 0
原创粉丝点击