2010-08-17 10 views
20

शायद यह उचित वाक्यविन्यास का सिर्फ एक प्रश्न है।मैं UIViewAnimation के लिए एकाधिक विकल्पों को कैसे परिभाषित कर सकता हूं?

मैं animateWithDuration:delay:options:animations:completion: UIView विधि का उपयोग करता हूं।

options: यहाँ समस्याग्रस्त हिस्सा है: जब मैं केवल एक ही विकल्प (उदाहरण के UIViewAnimationOptionCurveEaseInOut के लिए) सब कुछ ठीक काम करता है निर्दिष्ट करते हैं।

यदि मैं एकाधिक विकल्प को उसी एनीमेशन में असाइन करना चाहता हूं तो क्या होगा? मैं उसे कैसे कर सकता हूँ?

मैं निम्नलिखित कोड की कोशिश की है, लेकिन options: भाग निकला पूरी तरह से पर ध्यान नहीं दिया जा करने के लिए:

> [UIView animateWithDuration:DURATION 
>       delay:DELAY 
>      options:(UIViewAnimationOptionAllowUserInteraction, 
>        UIViewAnimationOptionCurveEaseInOut) 
>     animations: ^{/*animations here*/} 
>     completion: ^(BOOL finished){/*actions on complete*/}]; 

यह सिर्फ एक कोशिश थी और यह काम नहीं किया। मुझे किस वाक्यविन्यास का उपयोग करना चाहिए?

अग्रिम में किसी भी मदद के लिए धन्यवाद।

उत्तर

51

ऑब्जेक्टिव-सी

options:(UIViewAnimationOptionAllowUserInteraction | 
          UIViewAnimationOptionCurveEaseInOut) 

स्विफ्ट

स्विफ्ट UIViewAnimationOptions में है एक Option set type और कई विकल्प रास्ता निम्नलिखित पारित किया जा सकता:

options:[.AllowUserInteraction, .CurveEaseInOut] 
+0

मुझे यकीन था कि यह आसान होगा। धन्यवाद, व्लादिमीर। Спасибо। –

+0

स्विफ्ट के लिए क्या जवाब है? यह '|' पसंद नहीं है जाहिर तौर पर ऑपरेटर। – MarqueIV

2

बस कारण जोड़ने के लिए ऐसा लगता है कि संकलक ने आपके आपूर्ति विकल्पों को अनदेखा किया है फिर भी ' टी फेंक एक त्रुटि है, क्योंकि वाक्य रचना है कि आप की कोशिश की अल्पविराम ऑपरेटर जो अक्सर अनिवार्य रूप से सी में अनदेखी की है

(UIViewAnimationOptionAllowUserInteraction, UIViewAnimationOptionCurveEaseInOut) 

tels संकलक पहला विकल्प त्यागने के लिए और केवल अल्पविराम के बाद मान असाइन का उपयोग करता है। अधिक सामान्य मामले में, अल्पविराम ऑपरेटर के लिए पहला तर्क मूल्यांकन किया जाता है, लेकिन इसका परिणाम त्याग दिया जाता है।

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

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