2013-08-01 5 views
5

I Aktivitätsindikator gesetzt haben setzenWie activityindicator Mitte eines Tableview

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

Aber das ist nicht richtig in der Tabellenansicht zentriert. Weil die Tabellenansicht scrollen kann. Wie kann ich einen Spinner in der Mitte des Bildschirms platzieren.

+1

Sie machen es zentriert von Bildschirm nicht von 'tableView'. Es wird auch die ** Höhe ** von 'navigaitonBar' und' statusBar' enthalten. ** Tabellenansicht kann blättern ** macht hier keinen Sinn. – TheTiger

+0

Für Swift 3 können Sie folgendes verwenden: Bitte überprüfen Sie meine Antwort in http://stackoverflow.com/a/41748916/2307418 –

Antwort

9

versuchen mit Balg Code: -

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

Code Ausgang ist: -

enter image description here

+0

UIActivityIndicatorView * Spinner = [[UIActivityIndicatorView Alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge]; spinner.center = CGPointMake ([UIScreen Hauptbildschirm] .bounds.size.width/2, [UIScreen Hauptbildschirm] .bounds.size.height/2); ; UIWindow * mainWindow = [[UIApplication sharedApplication] keyWindow]; [mainWindow addSubview: Spinner]; Das funktioniert für mich. – Susitha

+1

bravo .. das ist die gleiche Sache Sie UIWindow mainWindow = [[UIApplication sharedApplication] keyWindow]; und Objekt von appdelegate und du bekommst Fenster so wie mein Code ... :) –

4

Try this:

spinner.center = tableview.center; 

hoffe, es hilft !!

+1

Es wäre viel sicherer zu verwenden 'CGPointMake (CGRectGetMidX (self.bounds), CGRectGetMidY self.bounds)) 'da' tableview''s center relativ zur Superview ist und nicht selbst! – Warpling

1

Ich denke, Sie sollten Ihren Indikator (Spinner) in der Tabellenansicht anstelle von sel.view hinzufügen. und definieren Sie den Bereichsrahmen auf dem Anzeiger.

hoffe das wird dir helfen.

1

ich eine andere Lösung, weil ich ein Spinner im Detail View-Controller zu setzen haben. Vielleicht wird es jemandem helfen.

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

Und für die Positionierung:

-(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 werden im Detail View-Controller in der Mitte der Tabelle Ansicht immer.

-1

Bitte Code unten finden:

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