احتمالا تا به حال براتون سوال ایجاد شده که چگونه میتوانیم جای دقیق هر المنت را در SwiftUI مشخص کنیم؟ در این جلسه میخواهیم با استفاده از Stack ها این موارد را به شما یاد بدهیم.
در واقع Stack یک چارچوبی را ایجاد میکند که درون آن شما میتوانید view های متفاوت مثل Text, Button, Image و غیره را بصورتی که میخواهید در کنار هم قرار دهید.
در سوئیفت یو ای سه نوع Stack وجود دارد:
خب حالا میخواهیم هر کدام از این Stack ها را بصورت جدا و کامل براتون توضیح بدهیم.
برای تعریف آن میتوانید از کلمه کلیدی VStack
استفاده کنید، و درون آن تمام ویو ها یا المنت های دیگری که میخواهید در یک چارچوب و بصورت عمودی زیر هم باشند را تعریف کنید.
import
SwiftUI
struct
ContentView:
View
{
var
body:
some
View
{
VStack
{
Text("I am learning SwiftUI")
Text("This blog is about stacks")
}
}
}
اگر نیاز دارید بین view های داخل یک VStack فاصله ایجاد کنید، میتوانید از spacing استفاده کنید.
VStack(spacing:
10)
{
Text("I am learning SwiftUI")
Text("This blog is about stacks")
}
3 نوع حالت برای مشخص کردن جهت view ها داریم:
VStack(alignment:
.leading)
{
Text("I am learning SwiftUI")
Text("This blog is about stacks")
}
برای تعریف آن میتوانید از کلمه کلیدی HStack
استفاده کنید، و درون آن تمام view هایی را که میخواهید در یک چارچوب و بصورت افقی کنار هم باشند را تعریف کنید.
import
SwiftUI
struct
ContentView:
View
{
var
body:
some
View
{
HStack
{
Image("Milad")
Text("Milad KhatShab")
}
}
}
اگر نیاز دارید بین view های داخل یک HStack فاصله ایجاد کنید، میتوانید از spacing استفاده کنید.
HStack(spacing:
15)
{
Image("Milad")
Text("Milad KhatShab")
}
3 نوع حالت برای مشخص کردن جهت view ها داریم:
HStack(alignment:
.top)
{
Image("Milad")
Text("Milad KhatShab")
}
خب حالا که دو Stack اصلی را یاد گرفتیم بهتر یک تمرین ساده بکنیم که این موضوع بیشتر براتون جا بیوفته.
import
SwiftUI
struct
ContentView:
View
{
var
body:
some
View
{
HStack(alignment:
.top)
{
Image("Milad")
VStack(alignment:
.leading)
{
Text("name: Milad")
Text("website: SwiftAcademy.ir")
Text("email: support@swiftacademy.ir")
}
}
}
}
این Stack نسبت به قبلیا کاربرد کمتری دارد، ولی خب حتما باید یادش بگیرید.برای تعریف ZStack میتوانید از کلمه کلیدی ZStack
استفاده کنید.
import
SwiftUI
struct
ContentView:
View
{
var
body:
some
View
{
ZStack
{
Image("Taylor")
Text("Taylor Swift")
}
}
}
9 نوع حالت برای مشخص کردن جهت view ها در ZStack داریم، که در واقع ترکیب حالت های VStack و HStack هستند:
ZStack(alignment:
.bottom)
{
Image("Taylor")
Text("Taylor Swift")
}