2012-04-14 4 views
16

तो जब कोई उपयोगकर्ता मेरे ऐप में किसी बटन पर क्लिक करता है, तो मैं एक गतिविधि संकेतक के साथ एक नया दृश्य बनाना चाहता हूं और बटन कार्रवाई समाप्त होने तक पूरी स्क्रीन को इसके साथ कवर करना चाहता हूं।मेरी गतिविधि संकेतक को सभी स्क्रीन को कवर करने के लिए कैसे करें?

हालांकि, मेरी गतिविधि सूचक दृश्य केवल एक तालिका दृश्य के अंदर कवर कर रहा है, यह इस तरह दिखता है:

enter image description here

कैसे यह पूरे स्क्रीन को कवर करने के लिए? नेविगेशन नियंत्रक और तालिका दृश्य टूलबार सहित। करने के लिए

[self.navigationController.view addSubview:self.overlayView]; 

ओवरले के रेक्ट तदनुसार सेट

self.overlayView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
self.overlayView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]; 
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
self.activityIndicator.center = self.overlayView.center; 
[self.overlayView addSubview:self.activityIndicator]; 
[self.activityIndicator startAnimating]; 
[self.tableView addSubview:self.overlayView]; 

उत्तर

21

बदलें

[self.tableView addSubview:self.overlayView]; 

:

यहाँ मेरी कोड मैं दृश्य बनाने के लिए इस्तेमाल करते हैं।

+2

+1 इस रूप में भी ठीक से बारी बारी से होगा (shabzco समाधान नहीं होगा)। – Till

+0

@ कोडाफ़ी धन्यवाद, यह काम किया। लेकिन मैं दृश्य को कैसे हटा सकता हूं? अब जब मैं करता हूं [self.activityIndicator removeFromSuperview]; [self.overlayView removeFromSuperview]; यह काम नहीं करता है। –

+1

मैंने अपने ओवरले व्यू को टैग के साथ जोड़ा: ओवरले व्यू.tag = 1; और उसके बाद टैग को ओवरले की पहचान करने के लिए इस्तेमाल किया: [[self.navigationController.view viewWithTag: 1] removeFromSuperview]; – JanB

5

यह करें:

[[UIApplication sharedApplication].keyWindow addSubview:self.overlayView]; 
संबंधित मुद्दे