我是iOS開發新手,請耐心等待。 我正在使用表格視圖和滾動視圖製作照片網格。 我的問題是,如何加載活動指示器,直到從服務器下載圖像,然後顯示圖像並刪除活動指示符?設置活動指示器,直到從服務器加載圖像爲止?
我試圖遠離第三方庫,因爲我想了解它是如何工作的。
我是iOS開發新手,請耐心等待。 我正在使用表格視圖和滾動視圖製作照片網格。 我的問題是,如何加載活動指示器,直到從服務器下載圖像,然後顯示圖像並刪除活動指示符?設置活動指示器,直到從服務器加載圖像爲止?
我試圖遠離第三方庫,因爲我想了解它是如何工作的。
在您的視圖中放置一個活動指示器(通過Interface Builder或手動)。將該屬性設置爲「不動畫時隱藏」。
在進行服務器調用時,調用[activityIndicator startAnimating](IBOutlet屬性)。 用實際圖像返回時,請調用[activityIndicator stopAnimating]。停止時,它會自動隱藏。
您還可以使用iPhon/Pad狀態欄中的活動指示器。爲此,請使用[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; (顯然)
看看dowloading an image async爲dl'ing圖像的樣本。 您將停止didReceiveData函數中的活動指示符。
非常感謝你! – Shredder2794
在這裏你會發現,你可以使用下載圖像JMImage緩存文件。
你必須改變的UIImageView + JMImageCache.m文件
if(i) {
dispatch_async(dispatch_get_main_queue(), ^{
safeSelf.jm_imageURL = nil;
safeSelf.image = i;
[safeSelf setNeedsLayout];
[safeSelf setNeedsDisplay];
if (completionBlock) {
completionBlock(i).
}
});
然後使用方法
enter code here
{
[yourImageView setImageWithURL:[NSURL URLWithString:urlString]佔位符:[UIImage的imageNamed:@「placeholder」] completionBlock:^(UIImage * image) { //刪除添加的活動指示器
}failureBlock:^(NSURLRequest *req,NSURLResponse *resp,NSError *error)
{
// show error message
}];
}
您應指定你怎麼從服務器獲取圖像。如果它使用的是nsconnection,則其中一個代表具有收到的響應委託方法。 – Pochi