2013-08-01 5 views
5

मैं गतिविधि सूचककैसे एक tableview

spinner.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2); 
[self.view addSubview:spinner]; 

डाल दिया है की activityindicator बीच डाल करने के लिए लेकिन यह ठीक से तालिका दृश्य में केंद्रित नहीं है। क्योंकि तालिका दृश्य स्क्रॉल कर सकते हैं। मैं स्क्रीन के केंद्र में एक स्पिनर कैसे रख सकता हूं।

+1

आप कर रहे हैं यह स्क्रीन के केंद्रित 'tableView' की नहीं। इसमें 'नेविगेटनबार' और 'स्टेटसबार' की ** ऊंचाई ** भी होगी। ** तालिका दृश्य स्क्रॉल कर सकता है ** यहां कोई समझ नहीं आता है। – TheTiger

+0

स्विफ्ट 3 के लिए आप निम्न का उपयोग कर सकते हैं: कृपया मेरा जवाब http://stackoverflow.com/a/41748916/2307418 –

उत्तर

9

bellow कोड के साथ प्रयास करें: -

spinner.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2); 
    yourAppdelegateClass *appDelegate = (yourAppdelegateClass*)[[UIApplication sharedApplication] delegate]; 
    [appDelegate.window addSubview:spinner]; 

कोड आउटपुट है: -

enter image description here

+0

UIActivityIndicatorView * स्पिनर = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge]; spinner.center = CGPointMake ([यूआईस्क्रीन मुख्यस्क्रीन] .bounds.size.width/2, [यूआईस्क्रीन मुख्यस्क्रीन] .bounds.size.height/2); ; UIWindow * mainWindow = [[UIAplplication sharedAplication] keyWindow]; [मुख्यविंडो addSubview: स्पिनर]; यह मेरे लिए काम करता है। – Susitha

+1

ब्रावो .. यह वही बात है जो आप UIWindow mainWindow = [[UIAplplication sharedAplication] keyWindow]; और appdelegate की वस्तु और आप मेरे कोड के बराबर खिड़की मिलता है ... :) –

4

इस प्रयास करें:

spinner.center = tableview.center; 

आशा है कि यह मदद करता है !!

+1

में देखें, यह 'CGPointMake (CGRectGetMidX (self.bounds), CGRectGetMidY का उपयोग करने के लिए अधिक सुरक्षित होगा (self.bounds)) 'चूंकि' tableview' का केंद्र इसके पर्यवेक्षण के सापेक्ष होने वाला है और स्वयं नहीं! – Warpling

1

मुझे लगता है कि आपको sel.view के बजाय टेबल व्यू पर अपना सूचक (स्पिनर) जोड़ना चाहिए। और सूचक पर क्षेत्र फ्रेम परिभाषित करें।

आशा है कि यह आपकी मदद करेगा।

1

मैं एक समाधान है, क्योंकि मैं विवरण दृश्य नियंत्रक पर एक स्पिनर पर रखना होगा। शायद यह किसी की मदद करेगा।

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    self.spinner.hidesWhenStopped = YES; 
    [self.navigationController.view addSubview:self.spinner]; 
} 

और स्थिति के लिए:

-(void)viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 
    [self.navigationController.view setNeedsLayout]; 
    [self.navigationController.view layoutIfNeeded]; 
    self.spinner.frame = CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/2, 10, 10); 
} 

स्पिनर विवरण दृश्य नियंत्रक पर अपने तालिका दृश्य के केंद्र में हमेशा रहेंगे।

-1

कोड कृपया नीचे:

UIActivityIndicatorView* spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
spinner.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2); 
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 
[spinner startAnimating]; 
[appDelegate.window addSubview:spinner]; 
संबंधित मुद्दे