Day20:SwiftUI—GeometryReader

前言

本篇文章介绍 SwiftUI 的元件—GeometryReader。

实作

  • 打开一个新专案
    建立一个矩形:


    这个矩形的位置是 hard code 出来的,
    但我们的装置很常不一样,
    所以我们需要一个相对的位置和框架大小。
  • 加入 GeometryReader

    这样我们可以获得整个屏幕的尺寸,
    让我们来相对的确定位置:
  • print 相应的 global 几何坐标

  • print 相应的 local 几何坐标

    可以发现 global、local 数字不同。
    因为 global 是指相对整个屏幕的坐标,
    local 是指相对於其父级即这个 GeometryReader 的框架的坐标。
  • 宣告两个矩形


    output 这两个矩形的坐标:

    会发现是相同的,
    这是因为这两个矩形都是相对同一个 GeometryReader 确定坐标的,
    所以这个坐标是相对的而不是实际位置的坐标。
    如果把这两个矩形包在不同的 GeometryReader 里:

    则 output 出的坐标是不同的:
  • 将多个元素直接放在 GeometryReader 是直接堆叠在一起的,类似 ZStack

  • 创造重叠效果
    删除红色矩形,并且修改两个矩形长度:

    添加 offset modifier:


    出现重叠效果。

<<:  Day20 React的严格模式

>>:  第三十天:为 TeamCity 设计的 Kotlin DSL

DAY26 第一个完整程序练习,一台计算机!(一)

今天我们要来做一个专案,我要做一个计算机,以我们所学的来说技术方面很简单,但逻辑方面会比较难,以我来...

Day28: 今天来聊一下将syslog 资料连线到 Azure Sentinel

规划syslog连接器 我们可以使用适合的Linux Log Analytics Agent,从以L...

爬虫怎麽爬 从零开始的爬虫自学 DAY5 python基本资料类型介绍

前言 各位早安,书接上回我们完成了Visual Studio Code的设定,已经进行到可以正式写程...

透过机器学习审查合约书的4个优点

根据《哈佛商业评论》分享的一项报告数据,“低效率的合约管理流程会导致公司在特定交易中损失 5% 到 ...

【在 iOS 开发路上的大小事-Day11】透过 CocoaPods 来管理第三方套件

前情提要 一般在开发的时候,有些功能可能自己写不出来,但是网路上已经有别人写好的,那我们只需要将其引...