//
// 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
UIScrollView常见功能(scrollView里子控件悬停)
最新推荐文章于 2020-12-22 07:33:23 发布