ios - Returned value in delegate -
मुझे प्रोटोकॉल और init पद्धति के साथ ऑडियोव्यू क्लास मिला
@protocol AudioViewDelegate & lt; NSObject & gt; - (शून्य) प्लेबटन एक्शन: (आईडी) प्रेषक; // (1) - (शून्य) playButtonActionforAudioTrack: (AudioTrack *) ऑडियोट्रैक; // (2) ////
- (आईडी) initWithFrame: (CGRect) फ़्रेम फ़ॉर ऑडियोट्रैक: (ऑडियोट्रैक *) ऑडियोट्रैक withButtonTag :( Int) बटनटैग ऑडियो ट्रैक के साथ मैं कक्षा init मेरे पास प्ले बटन है और फिर मैं स्क्रीन पर इसे टेप करता हूं, विधि में प्रतिनिधि में (1) मुझे टेप बटन का प्रेषक टैग मिलता है।
मैं प्रतिनिधि ट्रैक में ऑडियो ट्रैक को ट्रैक किए गए ट्रैक के लिए कैसे वापस कर सकता / सकती हूं? < p> ================================== वर्ग <पूर्व> @protocol ऑडियोविवेडिलेगेट & lt; NSObject & gt; - (शून्य) प्लेबटन एक्शन: (आईडी) प्रेषक; - (शून्य) playButtonActionforAudioTrack: (ऑडियोट्रैक *) ऑडियोट्रैक; @end @ इंटर्फ़ेस ऑडियोव्यू: UIView @property (nonatomic, strong) UILabel * audioTitle; @ प्रॉपर्टी (नॉनैटोमिक, मजबूत) यूआईएलबल * अवधि टाइटल; @ प्रॉपर्टी (नॉनैटोमिक, मजबूत) UIButton * playButton; @ प्रॉपर्टी (नॉनैटोमिक, कमजोर) आईडी & lt; ऑडियोव्यूडिलेगेट & gt; प्रतिनिधि; - (आईडी) initWithFrame: (CGRect) फ्रेम के लिए ऑडियो ट्रैक: (ऑडियोट्रैक *) ऑडियोट्रैक withButtonTag: (int) टैग; //।
- (आईडी) initWithFrame: (CGRect) फ्रेम के लिए ऑडियोटैक: (ऑडियोट्रैक *) ऑडियोट्रैक withButtonTag: (int) बटनटैग {स्व = [सुपर initWithFrame: फ्रेम]; अगर (स्वयं) {self.frame = frame; Self.tag = 0011; UIImageView * audioImageView = .. // [ऑडियोव्यू जोड़ेंसाथ दृश्य: ऑडियोइज़िव्यूज]; Self.playButton = [UIButton बटन के साथप्रकार: UIButtonTypeCustom]; Self.playButton.frame = audioImageView.frame; Self.playButton.tag = buttonTag; [स्वयं। प्लेबटन सेटबैकग्राउंड इमेज: ऑडियोआईमेजविज। आईएजी स्टेटस्ट: यूआईकंटोलस्टेटअनॉर्मल]; [स्वयं ऐड-एसव्यूव्यू: स्वयं। प्लेबटन]; [स्वयं। प्लेबटन addTarget: self.delegate कार्रवाई: @ सिलेक्टर (प्लेबटन एक्शन :) कंट्रोल ईवेंट्स: यूआईकंट्रोल ईवेंट टचअप इनसाइड]; self.audioTitle = .. self.audioTitle.text = [NSString stringWithFormat: @ "% @ -% @", ऑडियोट्रैक। कार्ट, ऑडियोट्रैक.title]; [स्वयं ऐड-एसव्यूव्यू: आत्म। आडियो शीर्षक]; Self.durationTitle = .. [स्वयं जोड़ें Subview: self.durationTitle]; } स्वस्थ वापसी;
//// प्रतिनिधि
दृश्य बनाना
के लिए ) {ऑडियोट्रैक * ऑडियोट्रैक = [[ऑडिओट्रैक एलोक] आईआईटी]; AudioTrack.artist = dic [@ "कलाकार"]; AudioTrack.title = डीसी [@ "शीर्षक"]; AudioTrack.duration = डीसी [@ "अवधि"]; AudioTrack.url = डीसी [@ "यूआरएल"]; [स्व। ऑडिओ ऐडऑबैक्ट: ऑडियोट्रैक]; ऑडियोव्यू * ऑडियोव्यू = [[ऑडियोव्यू आलोक] इनिटविथफ्रेम: सीजीआरएक्टमेक (10, वर्तमानहाइट + ऑडियोइसेट, 300, 20) ऑडियओट्रैक के लिए: ऑडियोट्रैक के साथ बटनटैग: [ऑडियोएरेऑरेक्सऑफ़ ऑब्जेक्ट: डिक]]; AudioView.delegate = self; [ऐडस्यूब्यूव्यू दृश्य: ऑडियोव्यू]; /// कार्यान्वयन प्रतिनिधि
- (शून्य) playButtonAction: (आईडी) प्रेषक {int audioTag = [प्रेषक टैग]; // यहां मुझे टेप बटन का टैग मिलता है, ऑडियोट्रैक * सीक्टेड ट्रैक्ट = [स्व। ऑडियो एरे ऑब्जेक्टऐटइंडेक्स: ऑडियोटैग]; मुझे ट्रैक के साथ लंबे समय से भिन्नता मिलती है क्या यह संभव है कि मुझे प्रतिनिधि में ऑडियोटैक मिलता है?
यह वास्तव में एक जवाब नहीं है, लेकिन यह दूर है एक टिप्पणी के लिए लंबे समय तक
ठीक है, अगर ए एक ऐसा वर्ग है जो अन्य वर्गों के वस्तुओं को संदेश भेजना चाहता है जो इसे प्रतिनिधि के रूप में उपयोग करता है तो यह बुद्धिमान है, जैसा आपने किया था, अन्य वर्गों के सभी तरीकों के लिए एक प्रोटोकॉल घोषित करने के लिए, कि ए कॉल करना चाहता है इसे प्रोटोकॉल ए और विधियों method1 और method2 कहते हैं। Method2 पैरामीटर के रूप में एक पूर्णांक प्राप्त करता है उसके बाद आपके पास कोई अन्य श्रेणी B या C या जो कुछ भी है, जो प्रोटोकॉल प्रोटोकॉलए के अनुरूप है। फिर नाम प्रतिनिधि के साथ ए में टाइप आईडी का एक चर सामान्य है। समय पर कुछ समय, जब आप संदेश भेजना चाहते हैं, तो आप [self.delegate method1] को कॉल करते हैं;
यह मूल रूप से प्रतिनिधिमंडल पैटर्न के बारे में है आप कहां खेलते हैं बटटन एक्शन:?
Comments
Post a Comment