热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

SwiftUI:如何调整大小以适合按钮以展开以填充VStack或HStack父视图?

如何解决《SwiftUI:如何调整大小以适合按钮以展开以填充VStack或HStack父视图?》经验,为你挑选了1个好方法。

我正在尝试创建2个等宽的按钮,两个按钮垂直放置。它看起来应该像这样:

我将2放置ButtonsVStack其中,它会自动扩展到较大按钮的宽度。我正在尝试做的是将按钮的宽度扩展为,以填充的宽度VStack,但这是我得到的:

VStack(alignment: .center, spacing: 20) {

    NavigationLink(destination: CustomView()) {
        Text("Button")
    }.frame(height: 44)
        .background(Color.primary)

    Button(action: { self.isShowingAlert = true }) {
        Text("Another Button")
    }.frame(height: 44)
        .background(Color.primary)

}.background(Color.secondary)

设置宽度将其VStack展开,但是按钮无法展开以适合:

VStack(alignment: .center, spacing: 20) {
    ...
}.frame(width: 320)
    .background(Color.secondary)

所以我的问题是:

除了手动设置布局中每个项目的框架外,还有其他方法吗?

我宁愿不必指定每一个,因为这将变得难以管理。



1> cleverbit..:

设置.infinitymaxWidth,该frame(minWidth: maxWidth: minHeight:)API可用于使子视图展开以填充:

VStack(alignment: .center, spacing: 20) {

    NavigationLink(destination: CustomView()) {
        Text("Button")
    }.frame(minWidth: 100, maxWidth: .infinity, minHeight: 44)
        .background(Color.primary)

    Button(action: { self.isShowingAlert = true }) {
        Text("Another Button")
    }.frame(minWidth: 100, maxWidth: .infinity, minHeight: 44)
        .background(Color.primary)

}.frame(width: 340)
    .background(Color.secondary)


推荐阅读
author-avatar
小湿基_517
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有