UIScrollView - 喜马拉雅FM

效果图


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

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

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

  1. 滚动时输出当前的位置!
    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);

更改透明度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容