2014-02-20 131 views
0

嗨我正在嘗試通過單擊按鈕查看活動指示燈。我嘗試過,但我有一些問題。如果我將活動指示器拖動到故事板,但在運行我的應用程序時可見,但我希望在單擊按鈕時顯示該應用程序。在我的應用程序中,我正在給照片上傳選項。所以如果他們點擊我想查看活動指標的上傳按鈕。 ..僅在點擊按鈕後才顯示活動指示燈

這是代碼我累了,但它不工作。

這是我已經實現了活動的指標和按鈕我.h文件..

- (IBAction)click:(id)sender; 
@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *spinner; 

這就是我在我的米文件已經使用代碼...

-(void)temp 
{ 
spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
[spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode 
[self.view addSubview:spinner]; 
[spinner startAnimating]; 
[spinner release]; 
} 

和即時通訊在我的按鈕調用此功能..

- (IBAction)click:(id)sender { 
[self temp]; 
} 

而且我也有一些其他問題,我看到代碼here問題是

[yourView addSubview:spinner]; 

在yourview我給我的UIViewController的名字,但它給錯誤我已經改變到

[self.view addSubview:spinner]; 

請告訴我在哪裏即時做錯了什麼,使正確的方式。 。謝謝

+0

當你點擊那個按鈕時會發生什麼? – Suryakant

+0

沒有任何反應它仍然是一樣的活動指標不工作@SuryakantSharma – kumar

+0

確實沒有活動指標顯示? – Suryakant

回答

1

人給我的問題...我想你要添加的白的觀點,這就是爲什麼它沒有被顯示,但它是有一定所以...使用一些其他風格的白色活動指示燈UIActivityIndicatorViewStyleGray

-(void)temp 
{ 
spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
[spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode 
[self.view addSubview:spinner]; 
[spinner startAnimating]; 
[spinner release]; 
} 
+0

@Suryankant Sharama其工作感謝,但我認爲給活動控制器的一些時間採訪,請告訴我如何使它 – kumar

+0

對不起,我沒有得到你。 – Suryakant

+0

我想顯示活動指標只有5秒如何做到這一點?... – kumar

0

首先,因爲你已經有一個微調的IBOutlet,所以不要在temp方法中分配一個新的。修改您的臨時方法如下所示:

-(void)temp 
    { 
     spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
    [spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode 
    [self.view addSubview:spinner]; 
    [spinner startAnimating]; 
    } 
+0

請告訴如何使用iboutlet – kumar

+0

完全從XIB中刪除微調器,並使用您的原始溫度方法。它應該工作 –

+0

刪除後,其即時通訊錯誤使用未聲明的標識符'微調',所以請告訴我在哪裏我必須宣佈微調@Ratikanata帕特雷 – kumar

0

假設您的微調器連接到您的視圖。 在你viewDidLoad,你可以設置你的觀點,那麼它會當你點擊按鈕顯示:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
    self.spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
    [self.spinner setCenter:CGPointMake(480/2.0, 128.0/2)]; // (mid of screen) I do this because I'm in landscape mode 
    self.spinner.hidden = YES; 
} 

- (IBAction)click:(id)sender 
{ 
    self.spinner.hidden = NO; 
    [self.spinner startAnimating]; 

    // Additionally you can show spinner in top bar 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
} 

- (void)stopSpinner 
{ 
    if (self.spinner.isAnimating) { 
     self.spinner.hidden = YES; 
     [self.spinner stopAnimating]; 

     // And hide it when you don't need it anymore 
     [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
    } 
} 

我建議你看這個答案:How to get orientation-dependent height and width of the screen?重新您的微調位置。

+0

我已經使用IBOutlet活動指示器了,請告訴我如何使它移除IBOutlet它顯示錯誤 – kumar

+0

您可以'ctrl +使用故事板將你的微調器拖到正確的插座上。 –

0

I F您使用界面生成器一樣故事板XIB那麼剛纔設置的框架和evrything存在本身。如果您想在運行時更改它的屬性,只需使用您已使用的IBOutlet。 您不需要再次實例化,只需使用其getter和setter來相應地使用它。所以你可以在這裏做。

- (IBAction)click:(id)sender 
    { 
    [self.spinner startAnimating]; 
    } 

,並在使用它之前合成微調

如果要以編程方式將其從XIB中刪除並刪除與其相對應的所有引用。而在.h文件中

UIActivityIndicatorView *spinner; 

聲明或者你可以做一個財產

@property(nonatomic, strong)UIActivityIndicatorView *spinner; 

,只需使用自己的代碼。