本文价值与收获

看完本文后,您将能够作出下面的界面

Jietu20200507-092122@2x.jpg

Jietu20200507-092136.gif

看完本文您将掌握的技能

  • 掌握ZStack使用
  • 掌握 GeometryReader
  • 制作卡片效果

代码

import SwiftUIstruct ContentView: View {@State var isPresenting = false@State var isFullscreen = false@State var sourceRect: CGRect? = nilvar body: some View {ZStack {GeometryReader { proxy inButton(action: {self.isFullscreen = falseself.isPresenting = trueself.sourceRect = proxy.frame(in: .global)}) { Text("show") }}if isPresenting {GeometryReader { proxy inCard(cardTitle:"国宝十大名画",cardSubtitle: "五马图", cardCategory: "名画", background: "5", titleColor: .white).frame(width: self.isFullscreen ? nil : self.sourceRect?.width ?? nil,height: self.isFullscreen ? nil : self.sourceRect?.height ?? nil).position(self.isFullscreen ? proxy.frame(in: .global).center :self.sourceRect?.center ?? proxy.frame(in: .global).center).onAppear {withAnimation {self.isFullscreen = true}}}}}.edgesIgnoringSafeArea(.all)}
}extension CGRect {var center : CGPoint {return CGPoint(x:self.midX, y:self.midY)}
}struct ContentView_Previews: PreviewProvider {static var previews: some View {ContentView()}
}struct Card: View {var icon: UIImage = UIImage(named: "1")!var cardTitle: String = "Welcome to \nCards!"var cardSubtitle: String = ""var itemTitle: String = "Flappy Bird"var itemSubtitle: String = "Flap That!"var cardCategory: String = ""var textColor: UIColor = UIColor.whitevar background: String = ""var titleColor: Color = .blackvar backgroundColor: Color = .whitevar body: some View {VStack {if background != "" {Image(background).resizable().frame(width: 380, height: 400).cornerRadius(20)} else {RoundedRectangle(cornerRadius: 20).frame(width: 400, height: 400).foregroundColor(backgroundColor)}VStack {HStack {VStack(alignment: .leading) {if cardCategory != "" {Text(verbatim: cardCategory.uppercased()).font(.headline).fontWeight(.heavy).opacity(0.3).foregroundColor(titleColor)//.opacity(1)}HStack {Text(verbatim: cardTitle).font(.largeTitle).fontWeight(.heavy).lineLimit(3).foregroundColor(titleColor)}}Spacer()}.offset(y: -390).padding(.bottom, -390)HStack {if cardSubtitle != "" {Text(verbatim: cardSubtitle).font(.system(size: 17)).foregroundColor(titleColor)}Spacer()}.offset(y: -50).padding(.bottom, -50)}.padding(.leading)}.padding(.leading).padding(.trailing)}}

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

  • 请关注我的专栏icloudend, SwiftUI教程与源码
    https://www.jianshu.com/c/7b3e3b671970

推荐

基础文章推荐

  • 《SwiftUI是什么,听听大牛们如何说》

经典教程推荐

  • onevcat 大神的《SwiftUI 与 Combine 编程》
  • 更新近百篇SwiftUI教程《SwiftUI2020教程》
  • 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》

技术源码推荐

推荐文章

CoreData篇

  • SwiftUI数据存储之做个笔记App 新增与查询(CoreData)
  • SwiftUI进阶之存储用户状态实现登录与登出
  • SwiftUI 数据之List显示Sqlite数据库内容(2020年教程)

TextField篇

  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • 《SwiftUI实战之TextField风格自定义与formatters》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
  • 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》

JSON文件篇

  • SwiftUI JSON文件下载、存储、解析和展示(代码大全)

一篇文章系列

  • SwiftUI一篇文章全面掌握List(教程和源码)
  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
  • SwiftUI一篇文章全面掌握Form(教程和源码)
  • SwiftUI Color 颜色一篇文章全解决

http://www.taodudu.cc/news/show-3309460.html

相关文章:

  • SwiftUI 2.0 TabView 如何实现分页效果PageTabViewStyle(教程源码)
  • 建筑艺术与数据科技完美融合 全球最美的十大数据中心
  • HZAU2018年十大阅读之星演讲稿
  • 未来技术穿越啦!十幅经典名画预言“智·变”未来
  • 会动的古代名画,如画的江南古镇
  • Ledger增加浏览器扩展,将硬件钱包与Web 3应用程序连接起来
  • LUBANSO硬件钱包冷知识,逻辑与查询
  • 硬件钱包亮相、支付宝低调内测,数字人民币离普及应用越来越近了
  • 钱包
  • 硬件钱包linux安装,Multibit HD钱包安装使用教程
  • 钱包基础知识
  • BizBlocks推出结合了区块链技术的硬件钱包安全平台
  • 泄露数十万用户信息,硬件钱包Ledger遭遇信任危机
  • 数字人民币试点新场景多点开花,多品种“硬件钱包”触达平常百姓家
  • ChainNode测评:比特护盾 Watch2代硬件钱包
  • scatter配合硬件钱包实现EOS离线签名
  • 2017年Ledger售出100万个加密货币硬件钱包引来三星和谷歌的投资
  • ChainNode测评:WOOKONG BioSolo硬件钱包 全体验
  • 硬件钱包的安全性要素有哪些?
  • 为什么硬件钱包比你想象的更重要?
  • 硬件钱包linux安装,使用Trezor硬件钱包管理Omni版USDT教程
  • 开源钱包_硬件钱包是否应该开源
  • 打造一个web3.0时代入口的硬件钱包 —1-编译环境搭建
  • HyperMate Pro硬件钱包全体验
  • 区块链硬件钱包常见问答
  • 硬件钱包linux安装,Trezor硬件钱包管理Omni版USDT使用教程
  • 一分钟了解硬件钱包
  • python图片转文字easyocr_将图片转换成文字就是这么简单
  • 图片转文字怎么在线转换?分享几个好用的方法
  • 图片如何转换为文字

SwiftUI 视图切换之自定义modal控制Card卡片效果相关推荐

  1. swiftui动画之tab自定义切换动画_vue 基础-动画过渡 transition 示例

    前言 <vue 基础>系列是再次回炉 vue 记的笔记,除了官网那部分知识点外,还会加入自己的一些理解.(里面会有大部分和官网相同的文案,有经验的同学择感兴趣的阅读) 讲到动画,说真的我自 ...

  2. MFC视图切换大全总结

    单纯视图之间的切换 单文档多视图切换是我在学习MFC中遇到的一个老大难问题,在今天总算是一一破解了.我觉得视图切换分为三个等级,第一是在未切分窗格的情况下切换视图类:第二是在分割窗格的一个窗格内实行视 ...

  3. 用Angular制作单页应用视图切换动画

    视图,动画 单页应用(Single Page Web Application)往往有一个基本的要点,那就是把多个视图集成到一个网页内,然后去控制这些视图的显示和隐藏.此外,视图的切换动作几乎都会引入动 ...

  4. ios 视图切换翻页效果

    2019独角兽企业重金招聘Python工程师标准>>> 本文写的是视图切换,涉及到的内容有 1.实现代码添加Navigation Bar  Toolbal: 2.实现在Navigat ...

  5. Vue使用photo-sphere-viewer360°×180°全景插件模拟VR看房、房间切换和自定义标注

    Vue使用photo-sphere-viewer360°×180°全景插件模拟VR看房.房间切换和自定义标注 photo-sphere-viewer 下载插件 使用 常用参数 Markers插件 使用 ...

  6. 基于 Thingsboard 平台自定义 RPC 控制类小部件示例

    基于 Thingsboard 平台自定义 RPC 控制类小部件示例 1. 小部件介绍 2. 创建小部件 3. 部件编辑器 3.1 简介 3.2 资源 / HTML / CSS 3.3 JavaScri ...

  7. 微信小程序 自定义modal弹窗组件

    微信小程序开发中官方自带的wx.showModal,这个弹窗 API有时候并不能满足我们的弹窗效果,所以往往需要自定义modal组件.下面我们进行一个自定义modal弹窗组件的开发,并进行组件的引用, ...

  8. iOS中视图控制器指定自定义UIView

    他的好处就是在程序执行viewDIdLoad之前可以把我们需要用的数据加载完成.这也是减轻控制器的负担之一的办法.但是我个人觉得好是每有数据的延迟加载的功能牛.延迟加载只在数据需要的时候才被加载到视图 ...

  9. 小程序自定义modal弹窗封装实现

    前言 小程序官方提供了 wx.showModal 方法,但样式比较固定,不能满足多元化需求,自定义势在必行~ 老规矩先上图 点击某个按钮,弹出 modal框,里面的内容可以自定义,可以是简单的文字提示 ...

最新文章

  1. 使用函数求两个整数的最大公约数和最小公倍数
  2. 自定义Cell的流程
  3. mysql 5.7 io 性能 aio_深入理解MySQL的InnoDB引擎
  4. springboot16 整合MyBatis
  5. mybatis逆向工程生成java代码和xml配置
  6. 恒生电子:金融IT的“高铁模式”,如何从引进到领先?
  7. 【Java NIO的深入研究2】RandomAccessFile的使用
  8. 金蝶k3服务器维护,金蝶k3问题处理-完整版.docx
  9. 四叶草efi_Clover EFI bootloader for Mac(四叶草启动引导工具)
  10. Autoencoder理解(2): 自动编码器的作用之稀疏编码
  11. 各种泵的图形符号_水泵cad画法
  12. 2020家用千兆路由器哪款好_企业级千兆路由器哪个牌子好?2020排名
  13. docker容器无root 权限,如何获得docker容器里面的root权限
  14. 俞敏洪+马云+牛根生+史玉柱经典语录
  15. C++/MFC修行之路(5)Ribbon(功能区)的使用
  16. 7-9 幂集(回溯法) (20 分)(C语言版)
  17. ce修改面板属性_改属性【dnfce修改器吧】_百度贴吧
  18. 掘金牌鸡汤 - 收藏集 - 掘金
  19. [禅悟人生]学习是一种偏执
  20. C++ 学生姓名学号 字符串

热门文章

  1. 万字长文:用这篇文章聊聊To B运营都做些什么
  2. DAG拓扑排序-Kahn算法
  3. 【houdini vex】orient与up,side,v
  4. 求质数算法的N种境界[1] - 试除法和初级筛法
  5. 互联网摸鱼日报(2023-06-07)
  6. 监听浏览器刷新/关闭页面
  7. 软件工程毕业设计课题(81)微信小程序毕业设计PHP校园跑腿小程序系统设计与实现
  8. OpenAI Spinning Up强化学习笔记——关键概念与术语
  9. 六大设计原则之OCP
  10. 独家 | 数据分析@爱可可-爱生活是否利用机器学习算法运营微博