首页 > 其他分享 >GeometryReader的简单使用

GeometryReader的简单使用

时间:2024-10-26 17:17:50浏览次数:3  
标签:size Text frame 使用 width background 简单 View GeometryReader

VStack {
    GeometryReader { geo in
        Text("GeometryReader")
            .frame(width: geo.size.width * 0.9, height: 40)
            .background(.red)
    }
    .background(.green)
    
    Text("More text")
        .background(.blue)
}
GeometryReader { geometry in
    HStack {
        VStack {
            Text("Left Column")
                .frame(width: geometry.size.width * 0.4)
                .padding()
                .background(Color.red.opacity(0.3))
            
            Spacer()
            
            Text("Bottom Left")
                .frame(width: geometry.size.width * 0.4)
                .padding()
                .background(Color.green.opacity(0.3))
        }
        
        Spacer()
        
        VStack {
            Text("Right Column")
                .frame(width: geometry.size.width * 0.6)
                .padding()
                .background(Color.blue.opacity(0.3))
        }
    }
    .padding()
}
  • 使用 geometry.size 可以获取可用空间的宽度和高度。
    struct GReaderView: View {
        var body: some View {
            OuterView()
                .background(.red)
        }
    }
    
    struct OuterView: View {
        var body: some View {
            VStack {
                Text("top")
                InnerView()
                    .background(.green)
                Text("Bottom")
            }
        }
    }
    
    struct InnerView: View {
        var body: some View {
            HStack {
                Text("left")
                GeometryReader { geo in
                    Text("Center")
                        .background(.blue)
                        .onTapGesture {
                            print("Global center: \(geo.frame(in: .global).midX) x \(geo.frame(in: .global).midY)")
                        }
                }
                .background(.orange)
                Text("right")
            }
        }
    }

标签:size,Text,frame,使用,width,background,简单,View,GeometryReader
From: https://blog.csdn.net/qq_63007445/article/details/143177618

相关文章

  • SwiftUI 中.sheet的简单使用
    在SwiftUI中,使用.sheet显示视图时,可以通过状态变量来控制视图的显示和隐藏。onDismiss 在视图关闭时执行某些操作。structCatView:View{@StateprivatevarshowSheet=false//控制视图的显示状态@Stateprivatevarmessage=""//用于显示的信息......
  • 拴柱说Mac之Mac的高效使用技巧第四期
    Mac凭借着其出色的过人之处,收获了非常多用户的喜爱,流畅的操作,高续航表现,还有出彩的屏幕,使得Mac不论是在日常当中的使用,还是在工作使用当中,都有着出色的表现,这也是许多用户选择它的理由那么不论是工作使用,还是日常追剧学习,多窗口的情况总是不可避免的,所以分屏在此刻是最好的选......
  • 简单说说 redis主从同步原理
    主从同步分为以下几个情况1从节点和主节点建立连接时进行全量同步2从节点和主节点正常运行时同步3从节点和主节点断开连接后重新连接进行全量或者增量同步从节点和主节点建立连接时同步1从节点向主节点发生psyncrepIdoffsetId,其中repId是主节点标识,offsetId代表偏移......
  • mysql最基本使用命令(关于表)
    1.创建表createtableinfo(idintauto_increment,namechar(32)notnull,ageintnotnull,registerdatedatenotnull,primarykey(id));解析:auto_increment 属性用于创建自增字段notnull设置字段不能为空registerdate默认会记录创建记录时的当前日期和时间p......
  • Vue2 - 完美解决html2canvas截图不全问题,截屏导出的图片显示不全只有一部分或缺一块,vu
    前言该解决方案任意前端技术栈通用,不仅限Vue。在vue2(手机H5移动端/微信公众号H5页面)项目开发中,使用html2canvas截屏时发现有一部分未截取到少了一块截图不完整,导出保存图片时发现截图只有一半显示不全,另外还有一个问题就是截图时截取当前可视区域的问题(出现滚动条只保......
  • Linux笔记---Makefile的简单用法
    1.什么是MakefileMakefile是一种用于自动化构建和管理项目的工具,特别是在软件开发中非常常见。它包含了一系列规则(rules)和指令,描述了如何编译和链接源代码文件,以及生成最终的可执行文件或库文件。简单来说,在系统中存在一个叫做make的命令,该命令被使用之后,会在当前目录下......
  • PaaS简单介绍与学习
    平台即服务(PaaS)平台即服务(PaaS)是一种云计算模型,可为客户提供完整的云平台(硬件、软件和基础架构),用于开发、运行和管理应用程序,而无需应对构建和维护本地部署平台时通常会遇到的成本、复杂性和不灵活性。PaaS提供商在其数据中心托管所有内容,包括服务器、网络、存储、操......
  • 使用轻易云高效集成旺店通与金蝶云星空
    旺店通销售出库集成到金蝶云星空的技术实现在企业信息化管理中,数据的高效流动和准确对接是提升业务效率的关键。本文将详细介绍如何通过轻易云数据集成平台,将旺店通·企业奇门中的销售出库数据无缝集成到金蝶云星空系统中,实现销售出库单的自动化处理。集成背景与需求本次集成任务旨......
  • 使用Clickhouse数据库后,硬盘占满了,怎么办
    Hello,大家好,在我们使用了clickhouse进行数据存储后,多多少少遇到一些棘手的问题,在此记录。我们使用clickhouse改造后,系统流畅度得到大幅提升,大家有兴趣可以来体验一下效果,Webfunny前端监控和埋点系统如大家所知,Clickhouse数据有几大优点,很适合处理海量的数据,如:查询效率高、clickh......
  • 实验5-3 使用函数求Fibonacci数
    本题要求实现求Fabonacci数列项的函数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:intfib(intn);函数fib应返回第n项Fibonacci数。题目保证输入输出在长整型范围内。裁判测试程序样例:#include<stdio.h>intfib(int......