Swift2.x编写NavigationController动态缩放titleView

news/2024/7/5 0:48:30

这两天看到一篇文章iOS 关于navigationBar的一些..中的动态缩放比较有意思,看了一下源码,然后用Swift写了一下,使用storyboard实现.

效果图:

部分代码:

设置滑动代理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
 设置滑动代理
 
 - parameter scrollView: scrollView description
 */
override func scrollViewDidScroll(scrollView: UIScrollView) {
    
    let offsetY = scrollView.contentOffset.y + tableView.contentInset.top
    
    if offsetY < 0 && offsetY >= -150 {
        topImageView.transform = CGAffineTransformMakeScale(1 + offsetY/0), 1 + offsetY/(-300))
    }
    else if (offsetY >= 0 && offsetY <= 165) {
        topImageView.transform = CGAffineTransformMakeScale(1 - offsetY/300, 1 fsetY/300);
    }
    else if (offsetY > 165) {
        topImageView.transform = CGAffineTransformMakeScale(0.45, 0.45);
    }
    else if (offsetY < -150) {
        topImageView.transform = CGAffineTransformMakeScale(1.5, 1.5);
    }
    
    var frame = topImageView.frame;
    frame.origin.y = 5;
    topImageView.frame = frame;
}

ps: 来自文章中的代码

设置topImageView
1
2
3
4
5
6
7
8
9
10
11
12
13
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    
    
    topBkView.backgroundColor = UIColor.clearColor()
    self.navigationItem.titleView = topBkView
    
    // 设置topImageView 圆型
    topImageView.layer.cornerRadius = topImageView.bounds.size.width / 2
    topImageView.layer.masksToBounds = true
    topImageView.layer.anchorPoint = CGPointMake(0.5, 0.5)
    
}

下载demo了解更多(很简单)

GitHub: NavTopImage


http://lihuaxi.xjx100.cn/news/235611.html

相关文章

广播域

广播是一种信息的传播方式&#xff0c;指网络中的某一设备同时向网络中所有的其它设备发送数据&#xff0c;这个数据所能广播到的范围即为广播域(Broadcast Domain)。 广播域就是说如果站点发出一个广播信号后能接收到这个信号的范围。通常来说一个局域网就是一个广播域。广播域…

无法在证书存储区中找到清单签名证书的解决办法

以前的一个项目今天打开忽然提示说“无法在证书存储区中找到清单签名证书”&#xff0c;很郁闷&#xff0c;不知道怎么回事。最好在 工程属性里面&#xff0d;&#xff0d;签名&#xff0d;&#xff0d;为Clickonce清单签名 去掉 。再次生成居然成功了。不知道具体什么原因引起…

Cron 表达式极速参考

Cron表达式&#xff1a; * * * * * * *这些星号由左到右按顺序代表 &#xff1a; [秒] [分] [小时] [日] [月] [周] [年] 序号说明 是否必填 允许填写的值 允许的通配符1 秒 是 0-59 , - * /2 分 是 0-59…

Swift 中 10 个震惊小伙伴的单行代码

几年前&#xff0c;函数式编程的复兴正值巅峰&#xff0c;一篇介绍 Scala 中 10 个单行函数式代码的博文在网上走红。很快地&#xff0c;一系列使用其他语言实现这些单行代码的文章也随之出现&#xff0c;比如 Haskell&#xff0c;Ruby&#xff0c;Groovy&#xff0c;Clojure&a…

在博客中加入“花絮”效果

在博客中加入Snap Shots Snap Shots表示“花絮”的意思&#xff0c;在博客中可以使用Snap Shots来添加“花絮”效果。先演示一遍效果&#xff0c;看是否能用&#xff1a;http://www.cnblogs.com/psunny内部的链接Snap Shots效果不可用 http://www.google.cn外部的链接Snap Shot…

demo17 clean-webpack-plugin (清除模式)

1.为什么需要自动清除 dist 文件夹 在之前的 demo 中&#xff0c;webpack 打包后会在根目录下自动创建 dist 目录&#xff0c;并且把生成的文件输出到 dist 下。 当配置的输出包名含有 [hash] 时&#xff0c;hash值会随着文件内容的改变而改变。 因此&#xff0c;我们需要在下一…

使用 NSURLSession 开发一个支持后台下载和断点续传的下载工具

NSURLSession 是 iOS 系统提供给我们的原生网络操作库&#xff0c;它提供了网络操作相关的一系列特性支持&#xff0c;比如缓存控制&#xff0c;Cookie管理&#xff0c;HTTP 认证处理等等&#xff0c;是一套整体的网络操作处理解决方案。 关于 NSURLSession 的基本特性&#xf…

SQLite数据转换成sql server数据

需要将SQLite数据库里的数据导入到SQL Server&#xff0c;在网上搜了好久&#xff0c;没有找到一个方便实用的方法。 经过本人的细心琢磨实验&#xff0c;终于让我给找到一好的方法&#xff1a;使用CSV文件作为介质来做转换。现在记录下来&#xff0c;一是小小庆祝一下&#xf…