मेरे पास एक UIView है जो इंटरफ़ेस बिल्डर के माध्यम से UIViewController से जुड़ा हुआ है। क्या इस दृश्य को डुप्लिकेट, क्लोन या कॉपी करना संभव है ताकि मैं इसे एक से अधिक बार उपयोग कर सकूं?डुप्लिकेट, क्लोन या प्रतिलिपि UIView
उत्तर
निश्चित रूप से। प्रलेखन में good example of how to achieve that है; यह UITableViewCell
के लिए है, लेकिन यहां भी उपयोग करने के लिए एक अच्छा तरीका है।
आपके विचार की जटिलता के आधार पर, आप इसे एक कस्टम व्यू क्लास बनाना चाहते हैं, और इसे अपने स्वयं के IBOutlet
गुणों को जो भी सबव्यूव के लिए दे सकते हैं; उस स्थिति में, आप उस वर्ग में इंटरफ़ेस बिल्डर में दृश्य की "कक्षा पहचान" सेट करेंगे। फिर आपके व्यू कंट्रोलर किसी भी दिए गए XIB- लोड किए गए दृश्य पर उन दृश्यों तक पहुंच सकते हैं, उदाहरण के लिए, myLoadedView.someLabel
, उदाहरण के लिए, उदाहरण के लिए, [myLoadedView viewWithTag:3]
उपरोक्त दस्तावेज द्वारा सुझाए गए अनुसार।
UITableViewCell केवल भरी हुई है कई बार, कभी क्लोन नहीं किया। – geon
अंतर क्या है? –
मेरा अनुमान है कि @geon यह सुझाव दे रहा है कि, कई बार एक निब अनारक्षित करके एक नई वस्तु बनाने के दौरान ओपी की ज़रूरतों को हल करने लगता है, यह समस्या के सामान्य समाधान के रूप में कार्य नहीं करता है जैसा कि प्रश्न के शीर्षक से निहित है। यह कोड में बनाए गए UIView के सामान्य मामले में काम नहीं करेगा, उदाहरण के लिए, '[UIView alloc] initWithFrame: aFrame]; '। जवाब सही है, लेकिन सवाल शीर्षक भ्रामक है। – clozach
निम्नलिखित श्रेणी विशेष रूप से प्रभावी नहीं हो सकता है, लेकिन एक परियोजना में मेरे लिए काम किया:
@implementation UIView (OPCloning)
- (id) clone {
NSData *archivedViewData = [NSKeyedArchiver archivedDataWithRootObject: self];
id clone = [NSKeyedUnarchiver unarchiveObjectWithData:archivedViewData];
return clone;
}
@end
मैं -copy या -copyWithZone को लागू नहीं होगी: के रूप में एप्पल भविष्य में ऐसा हो सकता है। ध्यान दें, कि सभी विचार एक ही हद तक संग्रह को कार्यान्वित नहीं करते हैं। आपको निश्चित रूप से क्लोन होने के लिए अपने एनएसवी व्यूक्लास के कस्टम गुणों के लिए एनएससीओडींग विधियों को लागू करने की आवश्यकता होगी (अन्यथा क्लोन व्यू में शून्य हो जाएगी)। कस्टम क्लोनिंग कोड लिखने से अभी भी आसान है। उपयोग UIView की विधि:
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
यह एक दृश्य आकर्षित करने के लिए सबसे तेज़ तरीका है
यह बार-बार एक निब लोड करने से अधिक कुशल होना चाहिए क्योंकि यह बाह्य भंडारण तक नहीं पहुंचता है। – osxdirk
मेरे मामले में संग्रहण और अनारक्षित एक साथ बंडल (बाहरी भंडारण) से निब लोड करने से लगभग 20-25% अधिक समय लगा। वैसे भी मैं अभी भी loadNibNamed प्रदर्शन को बेहतर बनाने के लिए रास्ता तलाश रहा हूं। –
क्लोन व्यू में छवियां आईओएस 9 में बहुत धीमी गति से लोड हो रही हैं। – Suresh
यहाँ एक नई विधि का उपयोग कर सकते है। आईओएस में उपलब्ध है 7.
नोट: हालांकि यह एक बहुत ही विशिष्ट उपयोग मामले के लिए एक अच्छा समाधान है, यह विधि वास्तव में मूल के समान प्रकार का एक नया दृश्य नहीं बनाती है। यह केवल एक ऐसा दृश्य बनाता है जो इस पल को देखने जैसा दिखता है (यानी यह "दृश्य का एक स्क्रीनशॉट" लेता है), जिसे आप स्टैंड-इन के रूप में उपयोग कर सकते हैं उदा। संक्रमण प्रभाव के दौरान या फिर पुनः लोड/दृश्यों को पुनर्निर्मित करते समय। – uliwitness
आप स्विफ्ट 3.0.1 नीचे के साथ की कोशिश कर सकते हैं:
extension UIView{
func copyView() -> AnyObject{
return NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: self))! as AnyObject
}
}
- 1. क्लोन या कॉपी UIViewController या UIView
- 2. ArrayList उथले प्रतिलिपि या क्लोन()
- 3. UIView डुप्लिकेट
- 4. jQuery क्लोन डुप्लिकेट आईडी
- 5. क्या सरणी पर क्लोन विधि गहरी या उथली प्रतिलिपि है?
- 6. क्लोन/डुप्लिकेट/आईआईएस 7 में मौजूदा एप्लिकेशन पूल की प्रतिलिपि बनाएँ
- 7. java.util.Date क्लोन या प्रतिलिपि आंतरिक संदर्भ का पर्दाफाश करने के लिए प्रतिलिपि
- 8. एंड्रॉइड: प्रतिलिपि बनाएँ/डुप्लिकेट साझा करें
- 9. UIView से कैलियर की प्रतिलिपि बनाना संभव है?
- 10. गोल कोनों UIView या UIImageView
- 11. क्लोन नियंत्रण - सी # (Winform)
- 12. मर्ज Upsert या डुप्लिकेट अद्यतन
- 13. UIView
- 14. UIView
- 15. uiview
- 16. UIView
- 17. क्या SqlCommand.Clone() एक गहरी प्रतिलिपि या उथली प्रतिलिपि बनाता है?
- 18. UIView
- 19. ऑब्जेक्ट की विधि की प्रतिलिपि प्रतिलिपि - प्रतिलिपि कौन करता है?
- 20. UIView
- 21. आईओएस ड्रैग, फ्लिक या फ्लिंगिंग UIView
- 22. छवि क्लोन कैसे करें?
- 23. UIView
- 24. UIView
- 25. UIView
- 26. UIView
- 27. UIView
- 28. UIView
- 29. UIView
- 30. UIView
[स्विफ्ट जवाब] (http://stackoverflow.com/a/37050633/3681880) – Suragch