SwiftUI: पाठ में रोटेशन के बाद स्क्रीन की पूरी चौड़ाई नहीं है
ऐप केवल पॉट्रेट मोड का समर्थन करता है। दो प्रश्नों को प्रदर्शित किया जाना चाहिए, लेकिन उन्हें तदनुसार घुमाया जाता है। इसलिए खिलाड़ी सवालों को अच्छी तरह से देख सकते हैं, चाहे वे कहीं भी बैठें।
वैसे भी, ऐसा लगता है कि बाउंडिंग बॉक्स को घुमाते समय घुमाया नहीं गया है।
ZStack {
HStack {
GeometryReader { proxy in
Text(challenge)
.rotationEffect(Angle(degrees: 90), anchor: .center)
.frame(maxWidth: proxy.size.height, minHeight: proxy.size.width)
.foregroundColor(.red)
.font(.largeTitle)
.background(Color.blue)
}
Spacer()
GeometryReader { proxy in
Text(challenge)
.rotationEffect(Angle(degrees: 270), anchor: .center)
.frame(maxWidth: proxy.size.height, minHeight: proxy.size.width)
.foregroundColor(.red)
.font(.largeTitle)
.background(Color.blue)
}
}
}
मैंने कई अलग-अलग चीजों की कोशिश की है। मैंने बाहर छोड़ दिया GeometryReader
और 'तयशुदा () `के साथ काम किया। फिर मुझे एक-लाइनर मिलता है जो स्क्रीन के पार जाता है।
मैंने इस समाधान की भी कोशिश की है , लेकिन यह अपेक्षा के अनुरूप काम नहीं करता है।
मेरा परिणाम हमेशा एक पाठ होता है जिसमें पूर्ण चौड़ाई का उपयोग नहीं होता है। (ओवरलैपिंग सिर्फ एक और गलती है, लेकिन मुझे निश्चित रूप से नियंत्रण में होगा)।

मैं वास्तव में क्या करना चाहता हूं:

जवाब
यहाँ संभावित दृष्टिकोण का एक डेमो है। Xcode 12.1 / iOS 14.1 के साथ तैयार

struct DemoView: View {
var body: some View {
HStack {
RotatedText(text: lorem, angle: Angle(degrees: 90))
RotatedText(text: lorem, angle: Angle(degrees: -90))
}
}
}
struct RotatedText: View {
let text: String
let angle: Angle
var color: Color = .blue
var body: some View {
color.overlay(
GeometryReader { gp in
VStack {
Text(text)
.frame(width: gp.size.height, height: gp.size.width)
.rotationEffect(angle)
}.frame(width: gp.size.width, height: gp.size.height)
}
)
}
}