मेरी समस्या को समझाने से पहले, यह कहना महत्वपूर्ण है कि मैंने this question में किए गए सुझाव को पहले से ही लागू किया है और मुझे लगता है कि इस विधि के बारे में मेरे संदेह काफी अलग हैं, दोनों प्रश्नों के समान ही शीर्षक हैं।UIView.animateWithDuration?
तो, मैं एक स्विफ्ट नौसिखिया हूं और मैं स्विफ्ट में कुछ छोटी परियोजनाएं कर रहा हूं, जो पिछले उद्देश्य सी डेमो के आधार पर मैंने पहले किया था।
यह मेरा उद्देश्य सी कोड है:
- (void)moveSideBarToXposition: (int) iXposition{
[UIView animateWithDuration:0.5f
delay:0.1
options: UIViewAnimationOptionTransitionNone
animations:^{ self.mainView.frame = CGRectMake(iXposition, 20, self.mainView.frame.size.width, self.mainView.frame.size.height); }
completion:^(BOOL finished){
if (self.isSidebarHidden==YES) {
self.isSidebarHidden = NO;
}
else{
self.isSidebarHidden = YES;
}
}];
}
और ये मेरे स्विफ्ट संस्करण है:
func moveSideBarToXposition(iXposition: Float) {
UIView.animateWithDuration(0.5, delay: 1.0, options: UIViewAnimationTransition.None, animations: {() -> Void in
self.contentView.frame = CGRectMake(iXposition, 20, self.contentView.frame.size.width, self.contentView.frame.size.height)
}, completion: { (finished: Bool) -> Void in
if isMenuHidden == true {
isMenuHidden = false
} else {
isMenuHidden = true
}
})
}
और मैं इस त्रुटि मिलती है।
प्रकार का एक तर्क सूची के साथ 'animateWithDuration' आह्वान नहीं किया जा सकता '(डबल, देरी: डबल, विकल्प: UIViewAnimationTransition, एनिमेशन:() -> शून्य, पूरा होने के: (Bool) -> शून्य)'
मैंने प्रलेखन पढ़ा लेकिन वास्तव में मुझे यकीन नहीं है कि समस्या क्या है।
Btw, मैं Xcode 7 और स्विफ्ट 2.0
हाय! आपके जवाब के लिए धन्यवाद। वास्तव में, आप सही हैं। (मेरा बुरा, मुझे UIViewAnimationTransition.None और UIViewAnimationOptions.TransitionNone के बीच का अंतर नहीं पता था)। मैंने उस रेखा को सही किया लेकिन मुझे अभी भी एक ही समस्या है। मैंने अभी इस लाइन को हटा दिया है (self.contentView.frame = CGRectMake (iXposition, 20.0, self.contentView.frame.size.width, self.contentView.frame.size.height) ) और यह सब काम किया। लेकिन जब मैं इसे वापस रखता हूं, तो मुझे वही त्रुटि मिलती है जिसका मैंने पहले उल्लेख किया था। क्या आपका कोई सुझाव है? मैं बहुत मददगार होगा – Jadekin
आपके द्वारा डाली गई लाइन के साथ जो त्रुटि हो रही है, वह वास्तव में मुझे समझ में नहीं आता है, लेकिन समस्या यह है कि आपकी विधि 'moveSidebarToXposition'' फ़्लोट 'प्रकार का तर्क लेती है जिसे आप' CGRect' , जिसके लिए 'CGFloat' प्रकार की आवश्यकता होती है। तो आपको इसे इस तरह से परिवर्तित करने की आवश्यकता है: 'कन्वर्ट एक्सपोजिशन = CGFloat (iXPosition)' और 'CGRect' निर्माण – imas145
में 'convertXposition' का उपयोग करें) कृपया मेरा अपडेट किया गया जवाब – imas145