2013-08-01 16 views
5

mam umieścić wskaźnik aktywnościJak umieścić activityindicator środku tableview

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

Ale to nie jest prawidłowo wyśrodkowany w widoku tabeli. Ponieważ widok tabeli można przewijać. Jak umieścić spinner na środku ekranu.

+1

Robisz to skupione na ekranie nie stanowi 'tableView'. Będzie zawierał także ** wysokość ** z "navigaitonBar" i "statusBar". ** widok tabeli można przewijać ** nie ma sensu tutaj. – TheTiger

+0

Dla Swift 3 można użyć następującego: Proszę sprawdzić moją odpowiedź w http://stackoverflow.com/a/41748916/2307418 –

Odpowiedz

9

spróbować z kodem poniżej: -

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]; 

Kod wyjścia jest: -

enter image description here

+0

UIActivityIndicatorView * spinner = [[przydział UIActivityIndicatorView] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge]; spinner.center = CGPointMake ([główny ekran UIScreen] .bounds.size.width/2, [UIScreen mainScreen] .bounds.size.height/2); ; UIWindow * mainWindow = [[UIApplication sharedApplication] keyWindow]; [mainWindow addSubview: spinner]; To działa dla mnie. – Susitha

+1

bravo .. to samo co UIWindow mainWindow = [[UIApplication sharedApplication] keyWindow]; i obiekt appdelegate i dostajesz okno jako mój kod ... :) –

4

Spróbuj tego:

spinner.center = tableview.center; 

nadzieję, że pomoże !!

+1

Byłoby o wiele bezpieczniej używać 'CGPointMake (CGRectGetMidX (self.bounds), CGRectGetMidY (self.bounds)) 'ponieważ' tableview''s center będzie w stosunku do jego superview, a nie sam! – Warpling

1

Myślę, że powinieneś dodać swój wskaźnik (Spinner) w widoku tabeli zamiast sel.view. i określ ramkę obszaru na wskaźniku.

mam nadzieję, że to ci pomoże.

1

mam innego rozwiązania, bo muszę umieścić tarczy na detal widoku kontrolera. Może to pomoże komuś.

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

A do pozycjonowania:

-(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); 
} 

Spinner będzie zawsze w środku tabeli w widoku szczegółów widoku kontrolera.

-1

Proszę znaleźć poniżej kodu:

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]; 
Powiązane problemy