2017-09-20 31 views
9

आईओएस 11 में UIStackView के भीतर छुपा एनीमेशन का व्यवहार बदल गया है, लेकिन मैं इसे कहीं भी दस्तावेज नहीं ढूंढ पाया है।UIStackView छुपाएं देखें एनीमेशन

UIView.animate(withDuration: DiscoverHeaderView.animationDuration, 
         delay: 0.0, 
         usingSpringWithDamping: 0.9, 
         initialSpringVelocity: 1, 
         options: [], 
         animations: { 
          clear.isHidden = hideClear 
          useMyLocation.isHidden = hideLocation 
         }, 
         completion: nil) 
:

आईओएस 10

iOS 10 animation

आईओएस 11

iOS 11 animation

दोनों में कोड यह है

मैं आईओएस 11 पर पिछले व्यवहार को कैसे पुनर्स्थापित करूं?

उत्तर

17

बस एक ही समस्या थी। फ़िक्स एनीमेशन ब्लॉक के अंदर "stackView.layoutIfNeeded()" जोड़ रहा है। जहां स्टैक व्यू उन वस्तुओं का कंटेनर है जिन्हें आप छिपाना चाहते हैं।

UIView.animate(withDuration: DiscoverHeaderView.animationDuration, 
        delay: 0.0, 
        usingSpringWithDamping: 0.9, 
        initialSpringVelocity: 1, 
        options: [], 
        animations: { 
         clear.isHidden = hideClear 
         useMyLocation.isHidden = hideLocation 
         stackView.layoutIfNeeded() 
        }, 
        completion: nil) 

यह सुनिश्चित नहीं है कि यह अचानक आईओएस 11 में क्यों एक मुद्दा है लेकिन निष्पक्ष होने के लिए यह हमेशा अनुशंसित दृष्टिकोण रहा है।

+0

आप नायक हैं: डी –

+0

उचित नाम 'स्प्रिंगहम' –

+0

आईओएस में <= 10 वहां एक बग था जिसमें एनीमेशन ब्लॉक में 'UIStackView' के' सबव्यू 'की' छिपी हुई 'संपत्ति को सेट करना था कुछ मामलों में अनदेखा किया जा रहा था, इसलिए एनीमेशन से ठीक पहले, इसे इसके बाहर बदलने का सबसे अच्छा तरीका है। –

संबंधित मुद्दे