मैं एक ऐसा गेम बना रहा हूं जो बटन क्लिक पर एक प्लेइंग कार्ड उत्पन्न करता है। मैं यह कोड करने के लिए इस प्रयोग का उपयोग कर रहा हूं:प्रोग्रामेटिक रूप से जोड़े गए UIImageView
var imageView = UIImageView(frame: CGRectMake(CGFloat(pos), 178, 117, 172));
var image = UIImage(named: "\(deck[Int(card)])_of_\(suits[Int(arc4random_uniform(4))])")
imageView.image = image
self.view.addSubview(imageView)
लेकिन मेरे पास एक और बटन है जो गेम को रीसेट करता है। मैं केवल प्रोग्राम जोड़े गए कार्ड को हटाने में सक्षम होना चाहता हूं। इस पर किसी भी मदद की सराहना की जाएगी। BTW
imageView.removeFromSuperview() // this removes it from your view hierarchy
imageView = nil; // if your reference to it was a strong reference, make sure to `nil` that strong reference
, जैसा कि आप जानते हैं, UIImage(named:...)
स्मृति में इमेज को कैश देगा:
इसके लिए धन्यवाद। जैसा कि आप शायद बता सकते हैं, मैं इसके लिए बहुत नया हूं और यह मेरा पहला ऐप है। मैं छवियों को कैश नहीं करना चाहता हूं इसलिए मैं इसके बजाय 'contentOfFile' का उपयोग करने पर आपकी सलाह लेने की कोशिश कर रहा हूं। मैंने इसमें देखा है और मुझे लगता है कि मुझे ऐसा कुछ चाहिए ... 'var path: स्ट्रिंग? = NSBundle.pathForResource ("ace_of_spades", ofType: "png", inDirectory: "चित्र") ' तो इस तरह छवि को लोड: ' वर छवि = UIImage (contentsOfFile: पथ) ' लेकिन यह एक फेंक है त्रुटि। कोई सलाह? –
'pathForResource' एक क्लास विधि नहीं है। यह एक उदाहरण विधि है। तो आपको यह निर्दिष्ट करना होगा कि किस 'NSBundle' उदाहरण का उपयोग करना है, उदा। 'NSBundle.mainBundle()। PathForResource (...)'। चाहे आप प्रतिपादन का उपयोग करें 'इन डायरेक्टरी' है या बिना किसी पर निर्भर करता है कि आपके बंडल में छवियों को ठीक से संग्रहीत किया जाता है। (अक्सर वे बंडल के शीर्ष स्तर पर होते हैं, भले ही वे परियोजना में "समूह" में सूचीबद्ध हों।) मैं परियोजना को देखे बिना नहीं कह सकता। – Rob