博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIScrollView
阅读量:6950 次
发布时间:2019-06-27

本文共 3150 字,大约阅读时间需要 10 分钟。

 

#import "RootView.h"

 

@implementation RootView

 

- (instancetype)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        [self p_setupView];

    }

    return self;

}

 

-(void)p_setupView{

    self.backgroundColor = [UIColor yellowColor];

    UIImageView *imv = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"1.png"]];

   

    imv.frame = CGRectMake(0, 0, 150, 150);

    // 设置tag值,为了后面缩放的delegate(在controller里)取到imv

    imv.tag = 100;

    [self addSubview:imv];

   

    self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];

    self.scrollView.backgroundColor = [UIColor greenColor];

   

    // scrollView 属性

   

    // contentsize,能够滑动的决定性因素(能够决定滚动的范围)

    self.scrollView.contentSize = imv.frame.size;

   

    // contentOffset 偏移

    self.scrollView.contentOffset = CGPointMake(-50, -50);

    // 返回顶部

    self.scrollView.scrollsToTop = YES;

   

    // pagingEnabled 整页滑动(轮播图,相册

    self.scrollView.pagingEnabled = NO;

   

    // 边界是否反弹

    self.scrollView.bounces = YES;

    // 是否能够滚动

//    self.scrollView.scrollEnabled = NO;

    // 是否显示水平滚动条

    self.scrollView.showsHorizontalScrollIndicator = NO;

    // 是否显示垂直滚动条

    self.scrollView.showsVerticalScrollIndicator = YES;

   

    //

    self.scrollView.alwaysBounceHorizontal = YES;

    self.scrollView.alwaysBounceVertical = YES;

    // 缩放,配合代理使用

    // 最小0.5倍

    self.scrollView.minimumZoomScale = 0.5;

 

 // 最大2倍

    self.scrollView.maximumZoomScale = 2;

   

    // 设置缩放比例(是在显示完成之后才有效,在这里设置是无效的)

//    self.scrollView.zoomScale = 2;

   

    // 缩放反弹,也就是到最大值,或者最小值的时候,不再能显示放大/缩小的效果

    self.scrollView.bouncesZoom = NO ;

    // zooming是用来判断缩放状态的,只读

//    self.scrollView.zooming

   

   

    // 将scrollView显示

    [self addSubview:_scrollView];

    // 将imageView 放在scrollView上

    [self.scrollView addSubview:imv];

   

}

 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    // 通常的用法就是让原来缩放的东西恢复原来的比例,即赋1.

    self.scrollView.zoomScale = 0.5;

}

 

- (void)dealloc

{

    [self.scrollView release];

    [super dealloc];

}

@end

 

RootViewController.m

#import "RootViewController.h"

#import "RootView.h"

@interface RootViewController ()<UIScrollViewDelegate>

@property(nonatomic,retain)RootView *rv;

@end

 

@implementation RootViewController

 

-(void)loadView{

    self.rv = [[[RootView alloc]initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];

    self.view = _rv;

}

// scrollView 代理方法

// 指定缩放视图

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

    return [scrollView viewWithTag:100];

}

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // 设置代理

    self.rv.scrollView.delegate = self;

}

代理方法

 

RootViewController.m

 

#pragma scrollView 的代理方法

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

    NSLog(@"已经滚动。。");

}

 

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{

    NSLog(@"将要开始拖拽..");

}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

    NSLog(@"已经结束拖拽..");

}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{

    NSLog(@"将要开始减速..");

}

 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    NSLog(@"结束减速..");

}

 

// 缩放有关

// 缩放开始

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

  return [scrollView viewWithTag:100];

}

// 缩放结束

-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{

   

}

 

 

转载于:https://www.cnblogs.com/Coder-GT/p/4878411.html

你可能感兴趣的文章
背景-需要-需求规格
查看>>
4.6. CSS Sprite
查看>>
博客园首页博问闪存新随笔联系订阅管理 随笔- 252 文章- 0 评论- 45 HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法...
查看>>
OpenGL入门笔记(十三)
查看>>
Web趋势地图
查看>>
Python天天美味(11) - 可爱的大小写
查看>>
单链表
查看>>
WF4:AcitivityAction和ActivityFunc
查看>>
诺基亚S40手机联系人导入安卓手机
查看>>
JS魔法堂:再识Bitwise Operation & Bitwise Shift
查看>>
Vue.js——60分钟快速入门
查看>>
WordPress动作钩子函数add_action()、do_action()源码解析
查看>>
javaweb学习总结(三十二)——JDBC学习入门
查看>>
基于mapreducer的图算法
查看>>
[LeetCode] Kth Largest Element in an Array
查看>>
CTF---Web入门第七题 猫抓老鼠
查看>>
用XAML做网页!!—边栏与页脚
查看>>
Arduino单片机使用和开发问题记录
查看>>
Mac 升级 OS X 10.8.2 后 VirtualBox 无法启动的问题
查看>>
Js~在文件中引入其它相关的JS文件
查看>>