আপনার প্রয়োজন অনুসারে সুইফ্ট 5.2 এবং আইওএস 13.4 VStack
দিয়ে আপনার শীর্ষস্থানীয় সীমাবদ্ধতা এবং একটি পূর্ণ আকারের ফ্রেমের সাথে সারিবদ্ধ করার জন্য আপনি নীচের একটি উদাহরণ ব্যবহার করতে পারেন ।
নোট করুন যে সমস্ত নীচে কোড স্নিপেটগুলি একই ডিসপ্লেতে ফলাফল দেয় তবে ভিউ হায়ারার্কি ডিবাগ করার সময় যে কার্যকর উপাদানগুলি উপস্থিত হতে পারে VStack
তার সংখ্যা বা গ্যারান্টি দেয় না View
।
1. frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)
পদ্ধতি ব্যবহার করে
সবচেয়ে সহজ পদ্ধতির VStack
সর্বাধিক প্রস্থ এবং উচ্চতা সহ আপনার ফ্রেম সেট করা এবং প্রয়োজনীয় প্রান্তিককরণটি এখানে প্রবেশ করাও frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)
:
struct ContentView: View {
var body: some View {
VStack(alignment: .leading) {
Text("Title")
.font(.title)
Text("Content")
.font(.body)
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity,
alignment: .topLeading
)
.background(Color.red)
}
}
বিকল্প হিসাবে, যদি আপনার কোডগুলির জন্য নির্দিষ্ট প্রান্তিককরণের সাথে সর্বাধিক ফ্রেম সেট View
করা আপনার কোড বেসের একটি সাধারণ প্যাটার্ন হয় তবে আপনি View
এটির জন্য একটি এক্সটেনশন পদ্ধতি তৈরি করতে পারেন :
extension View {
func fullSize(alignment: Alignment = .center) -> some View {
self.frame(
maxWidth: .infinity,
maxHeight: .infinity,
alignment: alignment
)
}
}
struct ContentView : View {
var body: some View {
VStack(alignment: .leading) {
Text("Title")
.font(.title)
Text("Content")
.font(.body)
}
.fullSize(alignment: .topLeading)
.background(Color.red)
}
}
2. Spacer
প্রান্তিককরণ জোর করতে এস ব্যবহার
আপনি আপনার VStack
পুরো আকারের ভিতরে এম্বেড করতে HStack
পারেন এবং Spacer
আপনার VStack
শীর্ষস্থানীয় প্রান্তিককরণ জোর করতে পিছনে এবং নীচে ব্যবহার করতে পারেন :
struct ContentView: View {
var body: some View {
HStack {
VStack(alignment: .leading) {
Text("Title")
.font(.title)
Text("Content")
.font(.body)
Spacer()
}
Spacer()
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
.background(Color.red)
}
}
৩. একটি ZStack
এবং একটি পূর্ণ আকারের পটভূমি ব্যবহার করাView
এই উদাহরণটি দেখায় যে কীভাবে শীর্ষস্থানীয় প্রান্তিককরণ রয়েছে আপনার VStack
ভিতরে কীভাবে এম্বেড ZStack
করা যায়। Color
সর্বাধিক প্রস্থ এবং উচ্চতা সেট করতে দর্শনটি কীভাবে ব্যবহৃত হয় তা নোট করুন :
struct ContentView: View {
var body: some View {
ZStack(alignment: .topLeading) {
Color.red
.frame(maxWidth: .infinity, maxHeight: .infinity)
VStack(alignment: .leading) {
Text("Title")
.font(.title)
Text("Content")
.font(.body)
}
}
}
}
4. ব্যবহার GeometryReader
GeometryReader
নিম্নলিখিত ঘোষণা আছে :
একটি ধারক দর্শন যা এর সামগ্রীটিকে তার নিজস্ব আকার এবং স্থানাঙ্কিত স্থানের ক্রিয়া হিসাবে সংজ্ঞায়িত করে। [...] এই দর্শনটি তার প্যারেন্ট লেআউটে একটি নমনীয় পছন্দসই আকার প্রদান করে।
নীচের কোড স্নিপেটটি দেখায় যে কীভাবে শীর্ষ শীর্ষ সীমাবদ্ধতা এবং একটি পূর্ণ আকারের ফ্রেমের সাথে GeometryReader
আপনার সারিবদ্ধ করার জন্য VStack
:
struct ContentView : View {
var body: some View {
GeometryReader { geometryProxy in
VStack(alignment: .leading) {
Text("Title")
.font(.title)
Text("Content")
.font(.body)
}
.frame(
width: geometryProxy.size.width,
height: geometryProxy.size.height,
alignment: .topLeading
)
}
.background(Color.red)
}
}
5. overlay(_:alignment:)
পদ্ধতি ব্যবহার
আপনি যদি VStack
কোনও বিদ্যমান পূর্ণ আকারের শীর্ষে শীর্ষস্থানীয় সীমাবদ্ধতার সাথে প্রান্তিককরণ করতে চান তবে আপনি পদ্ধতিটি View
ব্যবহার করতে পারেন overlay(_:alignment:)
:
struct ContentView: View {
var body: some View {
Color.red
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
.overlay(
VStack(alignment: .leading) {
Text("Title")
.font(.title)
Text("Content")
.font(.body)
},
alignment: .topLeading
)
}
}
প্রদর্শন: