در بسیاری از صفحات شما نیاز دارید که تعدادی نوشته یا ورودی از کاربر بگیرید، در واقع Form ای ایجاد کنید که کاربر از طریف آن اطلاعات خود را وارد کند.
برای ایجاد یک فرم میتوانید از کلمه کلیدی Form
استفاده کنید و درون آن فیلد های مد نظرتون را قرار دهید.
import
SwiftUi
struct
ContentView:
View
{
var
body:
some
View
{
Form
{
Text("Swift Academy")
}
}
}
حالا یک form با سه نوع فیلد میخواهیم درست کنیم.
import
SwiftUi
struct
ContentView:
View
{
@State var
textFieldValue
=
""
var
body:
some
View
{
Form
{
Text("Swift Academy")
TextField("type your comment",
text:
$textFieldValue)
Button("send comment")
{
// sending comment...
}
}
}
}
تعداد فیلد های یک form بیشتر از 10 تا نمیتواند باشد. اگر نیاز دارید که بیشتر از 10 تا فیلد درون form بذارید، باید هر 10 تای آن را درون یک Group
قرار دهید.
برای مثال میخواهیم 12 تا Text درون این Form قرار دهیم. 10 تای اول آن را درون یک Group میگذاریم و 2 تای باقی مانده در Group بعدی قرار میگیرد.
import
SwiftUi
struct
ContentView:
View
{
var
body:
some
View
{
Form
{
Group
{
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
Text("Hello")
}
Group
{
Text("Hello")
Text("Hello")
}
}
}
}
Group
تغییری در ظاهر Form
بوجود نمی آورد و فقط اجازه میدهد که تعداد بیشتری فیلد درون یک فرم قرار دهیم.شما این امکان را دارید که بجای استفاده از Group
که تغییری در ظاهر فیلد ها ایجاد نمیکند، از Section
ها استفاده کنید، که بین هر بخش فاصله ای را ایجاد میکنند.
import
SwiftUi
struct
ContentView:
View
{
var
body:
some
View
{
Form
{
Section
{
Text("Hello")
Text("Hello")
Text("Hello")
}
Section
{
Text("Hello")
Text("Hello")
}
}
}
}
این امکان را داریم که برای هر Section
یک header تعریف کنیم که مشخص کننده موضوع آن بخش است. به مثال زیر دقت کنید.
import
SwiftUi
struct
ContentView:
View
{
var
body:
some
View
{
Form
{
Section(header:
Text("Profile"))
{
Text("name")
Text("lastname")
Text("age")
}
Section(header:
Text("Favorite os"))
{
Text("ios")
Text("macos")
}
}
}
}