2016-12-23 47 views
1

我有八个不同的静态单元格在tableview中。我正试图用六个单元执行不同的操作。其中两个打开警报视图,两个打开Safari,一个清除缓存,最后一个打开共享弹出窗口。以前,他们都使用UIButtons和IBActions。但是,自从设置一个静态tableview以来,我遇到了一些问题。触发静态UITableView中的单元格时触发一个动作[Swift]

我试图将单个细胞连接到自己的行为,我似乎无法与网点做到这一点。我该怎么做?

谢谢。

斯威夫特3

表视图代码:

import UIKit 

class AltSettingsTableViewController: UITableViewController { 

@IBOutlet weak var copyrightInfo: UITableViewCell! 

@IBOutlet weak var shareApp: UITableViewCell! 

@IBOutlet weak var rateApp: UITableViewCell! 

@IBOutlet weak var clearCache: UITableViewCell! 

@IBOutlet weak var purchasePhotos: UITableViewCell! 

@IBOutlet weak var helpFeedback: UITableViewCell! 

override func viewDidLoad() { 
    super.viewDidLoad() 


    self.tableView.backgroundColor = UIColor.clear 
    self.tableView.backgroundView = nil; 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
    return CGFloat.leastNormalMagnitude 
} 

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return CGFloat.minimum(35, 35) 
} 

override var prefersStatusBarHidden: Bool { 
    get { 
     return true 
    } 
} 

回答

0

你有重写func tableView(UITableView, didSelectRowAt: IndexPath)?它应该让你知道什么时候点击一个单元格,然后你可以使用indexPath来确定它是哪个单元格。

编辑:文档UITableViewDelegateNSIndexPath

实施例:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if indexPath.row == 0 { 
     // do stuff 
    } 
    //... 
} 
+0

我还没有添加'FUNC的tableView(UITableView的,didSelectRowAt:IndexPath)'。一旦我补充说,我将​​如何使用indexPath来确定哪个单元被点击?谢谢。 – Miles

+0

'indexPath'具有属性'row'和'section'。它看起来像你的表中只有一个部分(除非缺少部分设置),所以第一个单元格将在'indexPath.row == 0'处,第二个单元格是'indexPath.row == 1',等等。 – Samantha

+0

太好了,谢谢。使用override func tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath.row = 7)获得错误{'with'row'不是'IndexPath'类型的成员。 'indexpath.row == 1'应该去哪里?非常感谢你。 – Miles