ios-scrollView的悬停处理

前言:发现在很多的app中都会采用到这个scrollview悬停(想了解的看一看)

Snip20160616_2.png
Snip20160616_3.png
#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>
@property (nonatomic, strong) UIScrollView *scView;
@property (nonatomic, strong) UIView *topView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIScrollView *scView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
    [self.view addSubview:scView];
    scView.backgroundColor = [UIColor redColor];
    scView.contentSize = CGSizeMake(self.view.frame.size.width, 1000);
    //创建一个button
    UIButton *but = [[UIButton alloc]initWithFrame:CGRectMake(100, 400, 100, 100)];
    [scView addSubview:but];
    but.backgroundColor = [UIColor greenColor];
    //创建顶部的条
    UIView *topView = [[UIView alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 50)];
    topView.backgroundColor = [UIColor greenColor];
    [scView addSubview:topView];
    self.topView = topView;
    self.scView = scView;
    self.scView.delegate = self;
    
}
#pragma scrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    if (self.scView.contentOffset.y > 100) {
        self.topView.frame = CGRectMake(0, 0, self.view.frame.size.width, 50) ;
        [self.view addSubview:self.topView];
    }else{
        self.topView.frame = CGRectMake(0, 100, self.view.frame.size.width, 50) ;
        [self.scView addSubview:self.topView];
    
    }

}

@end
基本思路就是代理监听scrollview滑动时的偏移量,如果偏移量大于悬浮控件到屏幕顶端的距离,那么就将悬浮控件添加到根控制的view,如果偏移量小于这个距离时,再把悬浮控件添加到最表面的scrollView,注意:悬浮控件每次更改父控件时候都需要更改自己的坐标。
工程地址代码下载
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,914评论 25 709
  • 01 前些天,支付宝推送了一组海报,主题是“年纪越大,越没有人原谅你的穷”,每一张海报的文案都能把你的心扎成马蜂窝...
    衷曲无闻阅读 27,889评论 315 986
  • “长期睡眠不足与睡眠质量过差引起了癌细胞突变,建议你立即停工住院治疗。”医生的话犹如一道惊雷在荔枝耳边炸响,瞳孔忽...
    离楠阅读 1,482评论 2 1
  • 1.好久没有像今天这样,能在下午大睡一觉啦!幸福!以前宝贝们晚上睡觉比较早,大概七点多就开始睡觉了,而自己总能躺在...
    华丽的美丽丽阅读 1,222评论 0 0