目标在cellForRowAtIndexPath中自动调用

时间:2016-12-09 14:44:56

标签: ios swift uitableview

在我的UITableView中我创建了许多像这样的单元格:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

   let cell = tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
   let btn = cell.viewWithTag(1001) as! UIButton
   btn.tag = indexPath.row
   btn.addTarget(cell, action: Selector(myFunc(btn)), forControlEvents: .TouchUpInside)

...
}

我无法理解为什么在填充UITableView时会自动调用myFunc()。 (不触摸任何按钮)

2 个答案:

答案 0 :(得分:0)

更改您的for input_file in os.listdir(input_path): file_path = input_path + '\\' + input_file data = pd.read_csv(file_path, sep='|') data.to_hdf(self.outputs_path + '\converted.h5', 'converted_table') 方法

addTarget

答案 1 :(得分:0)

因为你在单元格中给出了函数的目标,所以在cellRowAtIndexPath中自动调用目标而不触及任何按钮。首先,从目标中删除单元格并编写自己。它说该函数声明了同一个类。如果从任何其他类访问函数,则编写类名。

  btn.addTarget(self, action: Selector(myFunc(btn)), forControlEvents: .TouchUpInside)