效果图
需求:
1.实现横向方法不能移动
2.App开启后,原型图中"A"部分的内容是在标题"电台"下面位置!
滚动到最底部时,原型图中"B"部分的内容是出现在标签"首页,评论..."上面!
3.实现‘滚动’时,输出当前滚动的位置(代理方式)
使用知识点:
contentSize (内容大小),
contentOffSet (偏移量),
contentInset (内边距)
思路:
1.设置scrollViw的内边距(上边和下边的内边距),就可以实现scrollView里面的内容,不会和原型图中"A"和"B"重叠!
contentInset (内边距) : 想象把内容变大了,在内容的外围加了一层“外边距”.
- 滚动时输出当前的位置!
1.采用contentOffset获取内容的偏移量
2.通过代理,拥有监听‘滚动’的方法
关键代码
@interface ViewController () <UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIImageView *lastImgView;
@end
- (void)viewDidLoad {
[super viewDidLoad];
//CGRectGetMaxY 获取最大Y值
CGFloat lastImgY = CGRectGetMaxY(self.lastImgView.frame);
NSLog(@"lastImgY = %f",lastImgY);
UIEdgeInsets scrollEdge = UIEdgeInsetsMake(75, 0, 75, 0);
//设置内边距
self.scrollView.contentInset = scrollEdge;
//实现横向方法不能移动(contentSize.width = 0);
self.scrollView.contentSize = CGSizeMake(0, lastImgY+20);
//设置scrollViewd的代理为当前的控制器
self.scrollView.delegate = self;
}
//滚动(代理方法)
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint constPoint = self.scrollView.contentOffset;
NSLog(@"%@",NSStringFromCGPoint(constPoint));
}
其他
CGRectGetMaxY 获取最大Y值
CGRectGetMaxY(self.lastImgView.frame);