我有一個關於UITableView的問題。我想建立一個表格,第一行是我使用UIWebView播放視頻的靜態單元格。下面的其他行將是一個視頻列表。當我點擊列表中的視頻時,我想在第一行播放它。Swift UITableView didSelectRowAtIndexPath在multipleSection和多個原型單元格
任何人都可以幫助我設置功能didSelectRowAtIndexPath這種情況?非常感謝你。
這裏是我的代碼:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.section == 0 {
let cell2 = tableView.dequeueReusableCellWithIdentifier("staticCell", forIndexPath: indexPath) as! staticCell
let htmlString = "<video width='100%' webkit-playsinline controls autoplay ><source src= 'http://203.162.121.235:1935/live/tranhieuapt.rqv3-1d9w-hx44-5y3m/playlist.m3u8'></video>"
cell2.videoView.loadHTMLString(htmlString, baseURL: nil)
return cell2
} else if indexPath.section == 1 {
let cell = tableView.dequeueReusableCellWithIdentifier("dynamicCell", forIndexPath: indexPath) as! dynamicCell
// Get data function
func getDataFromUrl(url:NSURL, completion: ((data: NSData?, response: NSURLResponse?, error: NSError?) -> Void)) {
NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in
completion(data: data, response: response, error: error)
}.resume()
}
// Download Image Function
func downloadImage(url: NSURL){
getDataFromUrl(url) { (data, response, error) in
dispatch_async(dispatch_get_main_queue()) {() -> Void in
guard let data = data where error == nil else { return }
cell.thumnail.image = UIImage(data:data)
}
}
}
let vid = videoArray[indexPath.row]
cell.titleLb.text = vid.vidTitle
cell.viewLb.text = vid.vidView
cell.dateLb.text = vid.vidDate
let encodedUrl = vid.vidThumb.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
if let checkedUrl = NSURL(string: encodedUrl!) {
cell.thumnail.contentMode = .ScaleAspectFit
downloadImage(checkedUrl)
}
return cell
}
let cell = UITableViewCell()
return cell
}
如果你的問題中提到斯威夫特在標題和問題中的所有代碼用Swift編寫的,你正在尋找一個用Swift編寫的答案,你真的**不應該標記你的問題'objective-c'。 – Avi