UIScrollView常见功能(scrollView里子控件悬停)

//
//  ViewController.m


#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>
@property(nonatomic,weak)UIScrollView *scrollView;
@property(nonatomic,weak)UIImageView *imageView;
@property(nonatomic,weak)UIView *redView;
@property(nonatomic,weak)UIView *blueView;
@end

@implementation ViewController

- (void)viewDidLoad {
    

    
    // 添加scrollView
    UIScrollView *scrollView = [[UIScrollView alloc] init];
    scrollView.frame = [UIScreen mainScreen].bounds;
    scrollView.delegate = self;
//    scrollView.showsVerticalScrollIndicator = NO;
    [self.view addSubview:scrollView];
    self.scrollView = scrollView;
    
    
    // 添加imageView到scrollView中
    UIImageView *imageView = [[UIImageView alloc] init];
    imageView.frame = CGRectMake(0, 0, self.view.frame.size.width, 140);
    imageView.image = [UIImage imageNamed:@"ad_00"];
    [self.scrollView addSubview:imageView];
    self.imageView = imageView;
    
    // 添加redView到scrollView中
    UIView *redView = [[UIView alloc] init];
    redView.frame = CGRectMake(0, self.imageView.frame.size.height, self.view.frame.size.width, 44);
    redView.backgroundColor = [UIColor redColor];
    [self.scrollView addSubview:redView];
    self.redView = redView;
    
    // 添加blueView到scrollView中
    UIView *blueView = [[UIView alloc] init];
    blueView.frame = CGRectMake(0, CGRectGetMaxY(self.redView.frame), self.view.frame.size.width, 800);
    blueView.backgroundColor = [UIColor blueColor];
    [self.scrollView addSubview:blueView];
    self.blueView = blueView;
    
    // 设置scrollView的contentSize属性
    self.scrollView.contentSize = CGSizeMake(0, CGRectGetMaxY(self.blueView.frame));
}

#pragma mark - <UIScrollViewDelegate>
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offsetY = scrollView.contentOffset.y;
 
    if (offsetY >= self.imageView.frame.size.height) {
        //将redView控件添加到控制器的view中,设置Y值为0
        CGRect redFrame = self.redView.frame;
        redFrame.origin.y = 0;
        self.redView.frame = redFrame;
        [self.view addSubview:self.redView];
    }else{
        //将redView控件添加到scrollView中,设置Y值为图片的高度
        CGRect redFrame = self.redView.frame;
        redFrame.origin.y = 140;
        self.redView.frame = redFrame;
        [self.scrollView addSubview:self.redView];
    }
    
    // 图片放大
    CGFloat scale = 1 - offsetY / 70;
    scale = (scale >= 1) ? scale : 1;
    self.imageView.transform = CGAffineTransformMakeScale(scale, scale);
    
   
}

@end


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值