首页 > 其他 > 详细

02-UIScrollView底层实现

时间:2016-01-15 06:17:14      阅读:191      评论:0      收藏:0      [点我收藏+]
 
UIScrollView底层实现:修改bounds,就等于UIScrollView的contentOffset偏移量

 
#import "ViewController.h"
 
@interface ViewController ()<UIScrollViewDelegate>
 
@property (nonatomic, weak) UIView *scrollView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
  
    UIView *scorllView = [[UIView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:scorllView];
    _scrollView = scorllView;
   
    // 添加pan手势
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [scorllView addGestureRecognizer:pan];
   
    UISwitch *switchView = [[UISwitch alloc] init];
    [scorllView addSubview:switchView];
   
    // 1.UIView 添加一个pan手势
    // 2.手指往上移动,内容往上走,想看下面的内容,bounds.y++
   
}

- (void)pan:(UIPanGestureRecognizer *)pan
{
    // 获取手指偏移量
    CGPoint transP = [pan translationInView:pan.view];
    CGFloat offsetY = -transP.y;
   
    // 修改bounds
    CGRect bounds = _scrollView.bounds;
    bounds.origin.y += offsetY;
    _scrollView.bounds = bounds;
   
    // 复位
    [pan setTranslation:CGPointZero inView:pan.view];
   
   
//    NSLog(@"%f",offsetY);
}
技术分享

// 只要一滚动就会调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"%@ %@",NSStringFromCGPoint(scrollView.contentOffset),NSStringFromCGRect(scrollView.bounds));
}
//技术分享
 
 
 
@end

02-UIScrollView底层实现

原文:http://www.cnblogs.com/ITBKYOfZLK/p/5132162.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!