2016-01-14 48 views
0

我有一个UITableView使用生成列表的原型单元格。它们都共享相同的原型单元格,因为它们上面显示的数据是相同的,但它应该执行的功能并不相同。所有这些单元应该位于同一部分。如何为每个UITableViewCell单独点击

我应该使用6个不同的原型单元并根据NSINdexPath#row更改cellForRowAtIndexPath函数中获得的哪一个,或者有更简单的方法来注册单元格被选中时的自定义逻辑。

例如,让我们说,我的表视图看起来是这样的:

  • 显示数据 - 点击时显示一个弹出式窗口
  • 转到网站 - 当点击进入网站
  • 开放的应用 - 当点击打开另一个应用程序
  • 打开视图 - 当打开点击另一种观点

竟被如何d我分别处理该逻辑?

+0

didSelectRowAtIndexPath方法?那是你在找什么? –

+0

哪种语言的objective-c或swift? –

回答

1

您可以使用didSelectRowAtIndexPath获取每个单元的触摸事件。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    if indexPath.row == 0 { 
     // Show data 
    } else if indexPath.row == 1 { 
     // Go to website 
    }  
    /// etc 

} 

确保已经确立了自己tableViews delegatedatasourceviewController,并让您的viewController设置这个像这样:

class MyViewController: UITableViewDataSource, UITableViewDelegate { 
} 
+0

你必须扩展(?)基类“UITableViewController”来访问它,因为它在'UITableViewDataSource'中不可用,我使用标准的'UIViewController'考虑我的表视图不是我唯一的元素 – Hobbyist

+0

请参阅编辑。该特定函数是UITableViewDelegate的一部分,而不是UITableViewDataSource。 –

+0

即使该方法不可用,直接将它应用于UITableViewDataSource工作,无需添加UITableViewDelegate。奇怪。顺便说一句,谢谢。定时器后会接受 – Hobbyist

相关问题