iOS
StackView बच्चे के साथ UIScrollView
खोज…
स्क्रॉलव्यू उदाहरण के अंदर एक जटिल StackView
यहां नेस्टेड स्टैक व्यू के साथ क्या किया जा सकता है, इसके एक उदाहरण का अनुसरण करता है, जिससे उपयोगकर्ता को जटिल उपयोगकर्ता इंटरफ़ेस तत्वों या संरेखण का उपयोग करके लगातार स्क्रॉलिंग अनुभव का अनुभव होता है।
अस्पष्ट लेआउट को रोकना
स्क्रॉलव्यू के अंदर StackViews के बारे में अक्सर पूछे जाने वाले सवाल इंटरफ़ेस बिल्डर पर अस्पष्ट अलर्ट / के साथ आते हैं। जैसा कि इस उत्तर में बताया गया है, यह आवश्यक है:
- UIScrollView में एक UIView (contentScrollView) में जोड़ें;
- इस contentScrollView में, ऊपर, नीचे, बाएँ और दाएँ हाशिये को 0 पर सेट करें
- सेट भी क्षैतिज और लंबवत केंद्र संरेखित करें;
नेस्टेड StackViews के अंदर सामग्री के लिए स्क्रॉलिंग
स्क्रॉलिंग के बारे में बड़ी गोटा को वर्तमान उदाहरण के लिए आवश्यक ऑफसेट को निर्धारित करना है (जैसे कि एक StackView के अंदर एक Textfield स्क्रॉलव्यू के अंदर है )।
यदि आप Textfield.frame.minY
की स्थिति प्राप्त करने का प्रयास करते हैं , तो 0 हो सकता है , क्योंकि minY फ्रेम केवल तत्व और StackView के शीर्ष के बीच की दूरी पर विचार कर रहा है। इसलिए आपको अन्य सभी मूल अभिभावकों के विचार / विचार पर विचार करना होगा।
इसके लिए एक अच्छा समाधान है:
1 - स्क्रॉलव्यू एक्सटेंशन को लागू करें
extension UIScrollView {
func scrollToShowView(view: UIView){
var offset = view.frame.minY
var superview = view.superview
while((superview != nil)){
offset += (superview?.frame.minY)!
superview = superview?.superview
}
offset -= 100 //optional margin added on offset
self.contentOffset = CGPoint.init(x: 0, y: offset)
}
}
यह सभी मूल दृश्य पर विचार करेगा और स्क्रोलव्यू के लिए आवश्यक ऑफसेट को स्क्रीन पर आवश्यक दृश्य प्रस्तुत करेगा (उदाहरण के लिए एक टेक्स्टफील्ड जो उपयोगकर्ता कीबोर्ड के पीछे नहीं रह सकता है)
उपयोग उदाहरण:
func textViewDidBeginEditing(_ textView: UITextView) {
self.contentScrollView.scrollToShowView(view: textView)
}