खोज…


स्क्रॉलव्यू उदाहरण के अंदर एक जटिल StackView

यहां नेस्टेड स्टैक व्यू के साथ क्या किया जा सकता है, इसके एक उदाहरण का अनुसरण करता है, जिससे उपयोगकर्ता को जटिल उपयोगकर्ता इंटरफ़ेस तत्वों या संरेखण का उपयोग करके लगातार स्क्रॉलिंग अनुभव का अनुभव होता है।

स्क्रॉलव्यू उदाहरण के अंदर एक जटिल StackView

अस्पष्ट लेआउट को रोकना

स्क्रॉलव्यू के अंदर StackViews के बारे में अक्सर पूछे जाने वाले सवाल इंटरफ़ेस बिल्डर पर अस्पष्ट अलर्ट / के साथ आते हैं। जैसा कि इस उत्तर में बताया गया है, यह आवश्यक है:

  1. UIScrollView में एक UIView (contentScrollView) में जोड़ें;
  2. इस contentScrollView में, ऊपर, नीचे, बाएँ और दाएँ हाशिये को 0 पर सेट करें
  3. सेट भी क्षैतिज और लंबवत केंद्र संरेखित करें;

नेस्टेड 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)
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow