ユーザーがセルで長押しのジェスチャを実行しても更新していないときにUITableViewCellの枠線を更新しようとしています。ここでUITableViewCellの周りにUILongPressGestureRecognizerで選択したときに枠線を描きます。
は私のcellForRowAtIndexPath:
方法
let objLongPressHandler = UILongPressGestureRecognizer(target: self, action: #selector(self.longPressHandler(_:)))
objLongPressHandler.view?.tag = indexPath.row
objLongPressHandler.delegate = self
objLongPressHandler.enabled = true
objLongPressHandler.minimumPressDuration = 0.1
cell.contentView.addGestureRecognizer(objLongPressHandler)
これは私の機能UILongPressGestureRecognizer
機能です。
func longPressHandler(objGesture: UILongPressGestureRecognizer) {
let center = objGesture.view?.center
let rootViewPoint = objGesture.view!.superview?.convertPoint(center!, toView: self.tableView)
let indexPath = self.tableView.indexPathForRowAtPoint(rootViewPoint!)
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath!) as! GroupTableViewCell
cell.contentView.layer.borderColor = UIColor.redColor().CGColor
cell.contentView.layer.borderWidth = 3
cell.setNeedsLayout()
}
'objGesture'は何ですか?それはジェスチャー認識者ですか?このコードはどこで呼び出されていますか?コードの各行ごとにどのような結果が得られますか(つまり、 'center'、' rootViewPoint'、 'indexPath'、' cell'に対してどんな値を得ますか) –
私はこのコードで正しいindexpathを得ています。そして私はcellforIRowatIndexPathのコードをコールしています –
私が正しく理解すれば、ユーザーがセルを長押ししたときにセルの境界線を変更したいと思っています。長押しのセルだけが変わるはずです。これは正しいです? –