滑动代理scrollViewDidScroll

//结合前面写的在NavigationItem.titleView添加视图,加入滑动代理,就可以在滑动TableView的时候,实现NavigationItem.titleView的变大缩小


#pragma mark - 滑动代理

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

CGFloat offsetY = scrollView.contentOffset.y + _newsTableView.contentInset.top;//注意

/**

*  1 - offsetY/num1 = 0.45;

0.45 为最终缩小倍率

offsetY 为纵偏移量

num1=300 为要计算的值

150/165  就是滑动多少距离后,完成缩放

*/

if (offsetY < 0 && offsetY >= -150) {

_topImageView.transform = CGAffineTransformMakeScale(1 + offsetY/(-300), 1 + offsetY/(-300));

//        _topImageView.layer.anchorPoint = CGPointMake(0.5, offsetY/600. + 0.5);

//        NSLog(@"%lf - %lf", offsetY, 1 + offsetY/(-300));

}

else if (offsetY >= 0 && offsetY <= 165) {

_topImageView.transform = CGAffineTransformMakeScale(1 - offsetY/300, 1 - offsetY/300);

//        _topImageView.layer.anchorPoint = CGPointMake(0.5, 0.5 + offsetY/600.);

}

else if (offsetY > 165) {

_topImageView.transform = CGAffineTransformMakeScale(0.45, 0.45);

//        _topImageView.layer.anchorPoint = CGPointMake(0.5, 1);

}

else if (offsetY < -150) {

_topImageView.transform = CGAffineTransformMakeScale(1.5, 1.5);

//        _topImageView.layer.anchorPoint = CGPointMake(0.5, 0.5);

}

CGRect frame = _topImageView.frame;

frame.origin.y = 5;

_topImageView.frame = frame;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,543评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,724评论 6 30
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 11,510评论 0 13
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 9,261评论 1 4
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 8,404评论 1 23

友情链接更多精彩内容