热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

swiftUI如何使视图的宽度等于超级视图

如何解决《swiftUI如何使视图的宽度等于超级视图》经验,为你挑选了2个好方法。

我有 Button

struct ContentView : View {
var body: some View {
    HStack {
        Button(action: {}) {
            Text("MyButton")
                .color(.white)
                .font(Font.system(size: 17))
        }
        .frame(height: 56)
        .background(Color.red, cornerRadius: 0)
    }
}
}

但是我想将其固定在supreview的边缘(跟踪到superview的尾随和领先)。像这样:

HStack对我没有帮助,这是期望。固定frame或宽度等于UIScree.size不是灵活的解决方案。



1> DenFav..:

您需要使用.frame(minWidth: 0, maxWidth: .infinity)修饰符

添加下一个代码

        Button(action: tap) {
            Text("Button")
                .frame(minWidth: 0, maxWidth: .infinity)
                .background(Color.red)
        }
        .padding([.leading, .trailing], 20)

填充修改器将使您在边缘有一些空间。

请记住,修饰符的顺序很重要。因为修饰符实际上是包裹视图的函数(它们不更改视图的属性)



2> Matteo Pacin..:

您可以使用GeometryReader:https : //developer.apple.com/documentation/swiftui/geometryreader

根据苹果的说法:

此视图将灵活的首选大小返回到其父布局。

这是一种灵活的解决方案,因为它会根据父布局的变化而变化。


推荐阅读
author-avatar
雨过后放晴
若言琴上有琴声,放在匣中何不鸣?
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有