美文网首页
[SwiftUI练级-1]--创建Form

[SwiftUI练级-1]--创建Form

作者: 同分异构脑 | 来源:发表于2020-06-19 15:38 被阅读0次

    [SwiftUI练级-1]--创建Form

    许多app要求用户输入一些信息,可能是设置某项属性,或者是选择自己想要的某个选项,等等。SwiftUI 为这种场景专门提供了一个视图类型,称为Form。Form是一个可滚动列表,除了可以包含文本和图像这样的静态控件,也可以包含文本框,开关,按钮这些用户可交互的控件。你可以把一个文本控件包裹起来,来创建一个最简单的Form,就像下面这样:
    var body: some View { Form { Text("Hello World") } }

    如果你正在使用Xcode的画布,你会发现一个变化:起初“Hello World”是居中展示在一个白色的背景上,当你用Form将它包起来之后,背景变成了浅灰色,并且Hello World跑到左上角。下面是一组数据的列表,就像你在设置应用里看到的那样。
    Form { Text("Hello World") Text("Hello World") Text("Hello World") }
    实际上,你可以在form里放进任意多你想要的元素,不过如果元素超过10个,SwiftUI会要求你对元素进行分组。举个例子,下面的代码展示了10行文本,这样做没有问题:
    Form { Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") }
    如果试图像这样直接增加到11行,是不允许的:
    Form { Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") Text("Hello World") }
    提示: SwiftUI中有一个限制:Form知道如何添加一个、两个、 三个,直到十个元素到自身,但超过十个就不行。这是因为必须有一条界线。实际上,10个子元素的限制在SwiftUI中随处可见。如果你想要往Form里塞超过十个元素,你可以用Group来分组这些元素,让每个分组的子元素数量小于等于10个。

    Form {
        Group {
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
        }
    
        Group {
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
            Text("Hello World")
        }
    }
    
    

    注意:Group实际上并没有改变UI的视觉,只是让你可以解决10个子元素的限制。如果你确实要求Form把元素分成不同的组块,你可以使用Section视图,它会将form拆分成视觉上具体呈现的分组,就像设置app里的做法:

    Form {
        Section {
            Text("Hello World")
        }
    
        Section {
            Text("Hello World")
            Text("Hello World")
        }
    }
    

    把Form拆分成Section并没有套路或者规范可循,如何做取决于你。

    相关文章

      网友评论

          本文标题:[SwiftUI练级-1]--创建Form

          本文链接:https://www.haomeiwen.com/subject/pvovxktx.html