0

我有两个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)
}

结果:

在此处输入图像描述

当然没有滚动...所以我添加了一个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, minHeight: 50)
            .background(Color.red)
            .foregroundColor(.white)
            .padding(.all, 24)

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

结果:

在此处输入图像描述

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

我用少量文字得到的示例:

在此处输入图像描述

我想用少量文本获得的示例:

在此处输入图像描述

所以问题是我怎样才能使ScrollView内容“包装”而不是扩展到父级的整个高度View

4

0 回答 0