ios如何在导航栏缩放用户头像

来源:互联网 发布:火爆网络的ann视频 编辑:程序博客网 时间:2024/05/13 07:21

现在许多应用中都会有下拉放大用户头像,上拉缩小用户头像的功能效果,今天就来实现如何随着滚动而进行缩放。

效果图:



先上思路:

既然是在导航栏上进行缩放,那就应该将图片添加到导航栏的titleView上,然后监听滚动事件,这时候最好先打印滚动的Y值,在分析进行判断然后设置比例,利用transfrom进行图片缩放。

关键代码:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {      CGFloat offsetY = scrollView.contentOffset.y + scrollView.contentInset.top;  CGFloat scale = 1.0;  // 放大  if (offsetY < 0) {    // 允许下拉放大的最大距离为200    // 这个值可以自由调整    scale = MIN(1.5, 1 - offsetY / 200);  } else if (offsetY > 0) { // 缩小    // 允许向上超过导航条缩小的最大距离为200    scale = MAX(0.5, 1 - offsetY / 200);  }    self.headerImageView.transform = CGAffineTransformMakeScale(scale, scale);  // 保证缩放后y坐标不变  CGRect frame = self.headerImageView.frame;  frame.origin.y = -self.headerImageView.layer.cornerRadius / 2;  self.headerImageView.frame = frame;}



0 0
原创粉丝点击