UIScrollView - 喜马拉雅FM

效果图

UIScrollView - 喜马拉雅FM_第1张图片

需求:
1.实现横向方法不能移动
2.App开启后,原型图中 "A"部分的内容是在标题 "电台"下面位置!
滚动到最底部时,原型图中 "B"部分的内容是出现在标签 "首页,评论..."上面!
3.实现‘滚动’时,输出当前滚动的位置(代理方式)
UIScrollView - 喜马拉雅FM_第2张图片
原型图

使用知识点:
contentSize (内容大小),
contentOffSet (偏移量),
contentInset (内边距)

思路:
1.设置scrollViw的内边距(上边和下边的内边距),就可以实现scrollView里面的内容,不会和原型图中"A"和"B"重叠!
contentInset (内边距) : 想象把内容变大了,在内容的外围加了一层“外边距”.

  1. 滚动时输出当前的位置!
    1.采用contentOffset获取内容的偏移量
    2.通过代理,拥有监听‘滚动’的方法

关键代码

@interface ViewController () 
@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);

更改透明度

你可能感兴趣的:(UIScrollView - 喜马拉雅FM)