私はSwiftを初めて使用しています。私は私のテーブルビューで画像を表示しようとしています。私はこれに従いますtutorial。複数セクションのUITableViewでキャッシュタグ値を設定する方法をスウィフト
私のUITableView
では、このtutorialに示されているように。私はキャッシュに画像を保存しています。 tableviewにセクションが1つしかない場合、これはうまく動作します。テーブルビューに複数のセクションがある場合、どのようにしてforKey
の値を設定する必要がありますか?
セクションと行に従ってこの値を設定するにはself.cache.setObject(image!, forKey:indexPath.row)
?ありがとう!!
これはUITableView
func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
if(tableView == tableview){
return categoryArray.count
}else{
return 1
}
}
func tableView(tableView : UITableView, titleForHeaderInSection section: Int)->String
{
if(tableView == tableview){
return categoryArray.objectAtIndex(section) as! String
}else{
return ""
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
if(tableView == tableview){
print("Count = \(myList[section].count)")
return myList[section].count
}
else{
return 5
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
if(tableView == tableview) {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomEventCell
cell.cellBackgroundImg.image = UIImage(named: "placeholder")
if (self.cache.objectForKey(indexPath.row) != nil){
print("Cached image used, no need to download it")
cell.cellBackgroundImg?.image = self.cache.objectForKey(indexPath.row) as? UIImage
}else{
let img_url = myList[indexPath.section].objectAtIndex(indexPath.row).objectForKey("image") as? String
if img_url != nil{
print("Load the image from URL")
let url = NSURL(string: img_url!)!
let request = NSMutableURLRequest(URL:url)
let defaultSession = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let task = defaultSession.dataTaskWithRequest(request, completionHandler: {(data:NSData?, response:NSURLResponse?, error: NSError?) in
dispatch_async(dispatch_get_main_queue(), {() -> Void in
let image = UIImage(data: data!)
cell.cellBackgroundImg?.image = image
self.cache.setObject(image!, forKey:indexPath.row)
})
})
task.resume()
}
}
return cell
}
}
'tag'使用してみてください - あなたは – Rahul
@Rahulの(アプリケーションでビューオブジェクトを識別するために使用できる整数。)キャッシュのキーとしてURL文字列を使用していませんか?同じイメージが複数の行、複数のセクション、または行の数が変更された場合にキャッシュが有効になります。 –
なぜwouldnあなたのコメントをしてください手の込んだしてください可能性があり申し訳ありませんが代わりに' indexPath.row' – Paulw11