我有一个tableView在我的项目中成功运行。但是,我在选择单元格并更新我在同一个viewController中连接到tableview的textView时遇到问题。我的textView仅在我长按tableViewCell时更新。我想要每次按下单元格时都会更新textView。我相信,当我按下单元格时会取消选择。我的部分代码如下......
注意: 我在我的不同项目中使用以下代码,没有任何问题..我不确定这个tableview有什么问题....
提前致谢....
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let CellIdentifier: String = "fontCell"
let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier, forIndexPath: indexPath)
let fontName: String = self.fontName[indexPath.row] as! String
UIView.animateWithDuration(1, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.5, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
cell.textLabel?.text = fontName
cell.textLabel!.font = UIFont(name: self.fontName[indexPath.row] as! String, size: 25)
}, completion: nil)
cell.backgroundColor = UIColor.clearColor()
cell.textLabel?.textAlignment = .Center
cell.textLabel?.textColor = UIColor.whiteColor()
cell.textLabel?.sizeToFit()
cell.textLabel?.adjustsFontSizeToFitWidth = true
cell.selectionStyle = .Default
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//tableView.deselectRowAtIndexPath(indexPath, animated: true)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
let fontName: String = self.fontName[indexPath.row] as! String
self.textView.font = UIFont(name: fontName, size: 20)
})
}
答案 0 :(得分:1)
didSelectRowAtIndexPath
所以删除dispatch_async
并且只运行这样的代码应该没问题
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let fontName: String = self.fontName[indexPath.row] as! String
self.textView.font = UIFont(name: fontName, size: 20)
}
如果您已经在tableView中添加了一个手势识别器来处理可能会干扰其他水龙头的长按(或其他)。 尝试在识别器上将cancelsTouchesInView设置为false。
tapGestureRecognizer.cancelsTouchesInView = false