আপনার প্রয়োজন অনুসারে সুইফ্ট 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
)
}
}
প্রদর্শন:
