配列が取り込まれた UITableView があります。セルラベルとセルの詳細テキストが含まれています。詳細テキストは、基本的にファイルが保存される URL です。uitableviewcell を長押しするとポップアップが表示され、ファイルをダウンロードするオプションが表示され、そのオプションをクリックすると、ファイルが電話メモリの特定のディレクトリに保存されます。
どうやってやるの?
配列が取り込まれた UITableView があります。セルラベルとセルの詳細テキストが含まれています。詳細テキストは、基本的にファイルが保存される URL です。uitableviewcell を長押しするとポップアップが表示され、ファイルをダウンロードするオプションが表示され、そのオプションをクリックすると、ファイルが電話メモリの特定のディレクトリに保存されます。
どうやってやるの?
ジェスチャをセル オブジェクトに追加する
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 1.0; //seconds
lpgr.delegate = self;
[objMyTableViewCell addGestureRecognizer:lpgr];
[lpgr release];
扱う
-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
UITableVIewCell *objTableCell = (UITableVIewCell*)gestureRecognizer
NSURL *url = [NSURL URLWithString:objTableCell.lable.text];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request setDownloadDestinationPath:[NSString stringWithFormat:@"%@",filePath]]; //use the path from earlier
[queue addOperation:request]; //queue is an NSOperationQueue
[request setDownloadProgressDelegate:self];
[request setShowAccurateProgress:YES];
}
ダウンロードファイルの応答方法
- (void)requestDone:(ASIHTTPRequest *)request
{
NSString *response = [request responseString];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"hurreh!!"
message: @"Your download complete"
delegate: nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
//Do something useful with the content of that request.
}
- (void)requestWentWrong:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
を長押しするには、 UILongPressGestureRecognizerUITableViewCell
を使用できます。オプションを表示するには、UIActionSheetを使用できます。ファイルをダウンロードするには、NSURLConnectionまたはASIHTTPRequestを使用できます。