Activity Indicator View

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Activity Indicator View

    Ici habe folgendes Problem. Ich möchte bei einem WebView ein Activity Indicator einfügen, also eine Aktivitätenanzeige, dass wenn ich eine Seite lade, sich ein kleines Rädchen dreht, um zu zeigen das sich etwas tut. Dazu habe ich in einen XYViewController.m File folgendes geschrieben


    PHP-Quellcode

    1. @synthesize activityIndicator;
    2. -(void)webViewDidStartLoad:(UIWebView *)webView {
    3. [activityIndicator startAnimating];
    4. activityIndicator.hidden = NO;
    5. }
    6. -(void)webViewDidFinishLoad:(UIWebView *)webView {
    7. [activityIndicator stopAnimating];
    8. activityIndicator.hidden = YES;
    9. }
    Alles anzeigen



    Im .xib file habe ich dann festgelegt, dass sich der "activityIndicator" nun drehen soll, leider passiert aber nichts.


    Achja im XYViewCOntroller.h steht


    PHP-Quellcode

    1. @interface SecondViewController : UIViewController
    2. {
    3. IBOutlet UIWebView *WebView;
    4. IBOutlet UIActivityIndicatorView *activityIndicator;
    5. }
    6. @property(nonatomic, retain) IBOutlet UIWebView *WebView;
    7. @property(nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;
    8. @end
    Alles anzeigen






    Es wäre nett wenn mir jemand helfen könnte.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von soeren.rei ()

  • also hier ist das .h File

    PHP-Quellcode

    1. #import <UIKit/UIKit.h>
    2. @interface SecondViewController : UIViewController
    3. {
    4. IBOutlet UIWebView *WebView;
    5. IBOutlet UIActivityIndicatorView *activityIndicator;
    6. }
    7. @property(nonatomic, retain) IBOutlet UIWebView *WebView;
    8. @property(nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;
    9. @end
    Alles anzeigen
  • Hier das .m FIle

    Quellcode

    1. #import "SecondViewController.h"
    2. @implementation SecondViewController
    3. @synthesize WebView;
    4. @synthesize activityIndicator;
    5. -(void)webViewDidStartLoad:(UIWebView *)webView {
    6. [activityIndicator startAnimating];
    7. activityIndicator.hidden = NO;
    8. }
    9. -(void)webViewDidFinishLoad:(UIWebView *)webView {
    10. [activityIndicator stopAnimating];
    11. activityIndicator.hidden = YES;
    12. }
    13. // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    14. - (void)viewDidLoad
    15. {
    16. [WebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.de"]]];
    17. }
    18. // Override to allow orientations other than the default portrait orientation.
    19. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    20. return YES;
    21. }
    22. - (void)didReceiveMemoryWarning {
    23. // Releases the view if it doesn't have a superview.
    24. [super didReceiveMemoryWarning];
    25. // Release any cached data, images, etc that aren't in use.
    26. }
    27. - (void)viewDidUnload {
    28. // Release any retained subviews of the main view.
    29. // e.g. self.myOutlet = nil;
    30. }
    31. - (void)dealloc {
    32. [activityIndicator release];
    33. [super dealloc];
    34. }
    35. @end
    Alles anzeigen
  • Sehe ich das richtig, oder implementiert Dein SecondViewController nicht das UIWebViewDelegate-Protocoll?

    Quellcode

    1. @interface SecondViewController : UIViewController <UIWebViewDelegate>
    hätte ich jetzt erwartet, bei der Gelegenheit kannst Du auch gleich prüfen, ob der delegate vom WebView richtig gesetzt ist.
  • Ich bin ganz neu auf dem Gebiet Cocoa Entwicklung, und habe daher keine ahnung was ihr gerade von mir wollt. Wenn ich es richtig sehe, dann muss ich deine Codezeile so einsetzen:
    SecondViewController.h


    Quellcode

    1. //
    2. // SecondViewController.h
    3. //
    4. //
    5. //
    6. #import <UIKit/UIKit.h>
    7. @interface SecondViewController : UIViewController <UIWebViewDelegate>
    8. {
    9. IBOutlet UIWebView *WebView;
    10. IBOutlet UIActivityIndicatorView *activityIndicator;
    11. }
    12. @property(nonatomic, retain) IBOutlet UIWebView *WebView;
    13. @property(nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;
    14. @end
    Alles anzeigen
  • Also funktioniert Dein Delegate auch nicht.

    Apropos. Ich würde das Laden des Webview ins viewWillAppear verlegen. Dort gibt es dann wenigstens auch schon eine Viewhirachy.

    Das ganze könntest Du Dir übrigens auch noch einfacher machen wenn Du es nach Styleguide machst und den Statusbar Indicator benutzt

    Quellcode

    1. [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;


    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)