簡體   English   中英

如何查看帶有活動指示器的子視圖?

[英]How can I view subview with an activity indicator?

我需要查看帶有活動指示器的子視圖。 這是我的代碼,但未顯示子視圖:

@interface ProgressViewController : UIViewController {
    IBOutlet UIActivityIndicatorView *myActivityIndicator;
}
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivityIndicator;
@end

@implementation ProgressViewController
@synthesize myActivityIndicator;

- (void)viewDidLoad {
   [myActivityIndicator startAnimating];
   [super viewDidLoad]; 
}
- (void)viewWillDisappear:(BOOL)animated {
   [myActivityIndicator stopAnimating];
}
@end


#import "ProgressViewController.h"

@interface MyViewController : UIViewController {
    ProgressViewController *progressViewController;
}

@property (nonatomic, retain) ProgressViewController *progressViewController;
@end

@implementation MyViewController

@synthesize progressViewController

- (void)viewDidLoad
{
    progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil];
    [self.view addSubview:progressViewController.view];
    sleep(4);
    [progressViewController.view removeFromSuperview];

    [super viewDidLoad];
}
@end

可能有多種原因,但是從您發送的代碼中仍不清楚這是哪一種。

首先,您不應該在代碼中使用sleep(4)-它弄亂了iOS運行的應用程序引擎以支持用戶輸入,屏幕刷新等。您的代碼可以輕松更改為:

[self performSelector:@selector(removeMyProgressView:) withObject:progressViewController.view afterDelay:4.0];

並在removeMyProgressView:函數中具有removeFromSuperview

另外,以下代碼是有問題的:

progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil];

它應該是

self.progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil];

否則,您不會調用setter函數(@sythesized屬性),並且不會保留該對象。 可能是它已發布,因此您看不到它。

如果這都不對,我們將繼續努力:)

祝好運!

奧德

-viewDidLoad方法中的所有內容都在一個運行循環中發生。 這意味着您可以添加和刪除活動指示器,而不會給系統提供實際繪制它的機會。 4秒鍾的睡眠無濟於事。 這些只會使運行循環花費更長的時間才能完成。

- (void)viewDidLoad方法中的任何內容之前調用[super viewDidLoad]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM