ScrollView中有两个适合文本内容的文本

问题描述

我在Text中有两个vstack。两种文本的行数都可以无限增加。我希望如果文本的大小超出屏幕的大小,我可以滚动并查看所有内容

第一种方法

var body: some View {
    vstack(alignment: .center,spacing: 0) {

        vstack(alignment: .leading,spacing: 8) {
            Text(title)
                .font(.title)
            Text(subtitle)
                .font(.subheadline)
        }
            .frame(maxWidth: .infinity)
            .background(Color.orange)
            .padding(.top,24)
            .padding(.horizontal,24)

        Button(buttonTitle) { }
            .frame(maxWidth: .infinity,minHeight: 50)
            .background(Color.red)
            .foregroundColor(.white)
            .padding(.all,24)

    }.background(Color.gray)
        .frame(maxWidth: UIScreen.main.bounds.size.width - 20)
}

结果:

enter image description here

当然没有滚动...所以我添加了ScrollView:

var body: some View {
    vstack(alignment: .center,spacing: 0) {

        ScrollView {
            vstack(alignment: .leading,spacing: 8) {
                Text(title)
                    .font(.title)
                Text(subtitle)
                    .font(.subheadline)
            }
                .frame(maxWidth: .infinity)
                .background(Color.orange)
                .padding(.top,24)
                .padding(.horizontal,24)
        }

        Button(buttonTitle) { }
            .frame(maxWidth: .infinity,24)

    }.background(Color.gray)
        .frame(maxWidth: UIScreen.main.bounds.size.width - 20)
}

结果:

enter image description here

有效!但是当文本不足以填充屏幕的整个高度时,ScrollView仍会扩展到可用的整个空间,我希望它包装内容并“禁用”滚动功能

我用很少的文字所得到的示例:

enter image description here

我想用很少的文字得到的样本:

enter image description here

所以问题是如何使ScrollView来“包装”内容,而不是扩展到父View的整个高度?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...