2013-03-04 64 views
0

在我的應用程序中,我應用了image的過濾器。我想添加UIProgressView,因爲它需要幾秒鐘才能完成編輯。如何爲這種方法添加一個UIProgressView,並更新它的完成百分比?我已經通過了很多UIProgressView的示例,但它們是用於請求和加載網絡數據的Http。如何實現自定義方法?使用UIProgressView進行圖像編輯

+0

還有一個類似的問題。請看看它是你尋求的是什麼http://stackoverflow.com/questions/15200982/display-uiprogressbar-with-percentage-in-ios/15201465#15201465 – Anupdas 2013-03-04 12:50:32

+1

正如你可能在例子中看到的那樣,'UIProgressView'與你的輸入。所以你必須設定所需的百分比。如果您製作了過濾器,則可以在每次操作後增加百分比。如果您使用標準過濾器,則無法真正瞭解完成該操作需要多少時間。您可以根據圖像大小和設備類型進行估算,但這不是一個好習慣。在這種情況下,最好的解決方案應該是顯示一個活動指標。希望這可以幫助。乾杯! – George 2013-03-04 12:52:15

回答

1

如果您可以控制完成多少編輯,就像任何代理事件一樣,您可以像網絡呼叫或其他人一樣更新進度。即使你沒有這樣的事件,你可能會有一些內在的方法,它可以給你一個發生的總進度的三角洲。

然後你可以有一個方法,接受這個三角洲,將其添加到現有的進展。

- (void)updateProgress:(CGFloat)delta 
{ 
    [self.progressView setProgress:self.progressView.progress+delta]; 
    self.progressLabel.text = [NSString stringWithFormat:@"Completed : %.0f",self.progressView.progress*100]; 
} 
2

我想你需要使用Operation Queue。

[NSThread detachNewThreadSelector:@selector(showProgressView:) toTarget:self withObject:nil]; 

這對我有效我希望它也適用於你..有一個快樂的編碼。

0

很難回答這個問題,而不知道你可以使用哪些數據,但實質上,你需要有一個方法以一致的週期性時間間隔被調用,直到應用圖像過濾器。這樣做的一個竅門是,如果你能想出一個過濾器的時間估計值,然後用一個NSTimer來啓動一個方法直到這個時間完成。雖然如果你能弄清楚它過濾的確切時間,那顯然會更好。

從那裏,你需要將進度視圖的進度隨着時間的推移總像這樣的量設置到了那個時候......

self.progressView.progress = (float) progress 

但請記住,進度視圖是一個百分數,所以您將需要存儲兩個值進行比較(相互分割)1)總時間量2)總時間量。您可以通過在您的user @ interface中設置浮動進度來完成此操作。