[背景]
需要让一个view支持点击
[解决过程]
1.搜:
swift uiview click
参考:
后来用:
let tapRecog = UITapGestureRecognizer(target: self, action: "clickFileHandler:")
self.messageTableView.addGestureRecognizer(tapRecog)
func clickFileHandler(gestureReconizer:UITapGestureRecognizer){
// print("gestureReconizer=\(gestureReconizer)")
// print("gestureReconizer.state=\(gestureReconizer.state)")
if gestureReconizer.state == UIGestureRecognizerState.Ended {
let curPoint:CGPoint = gestureReconizer.locationInView(self.messageTableView)
if let indexPath = self.messageTableView.indexPathForRowAtPoint(curPoint) {
if let curCell = self.messageTableView.cellForRowAtIndexPath(indexPath) {
let curMessageTVC:MessageTableViewCell = curCell as! MessageTableViewCell
let convertedPointToView = self.messageTableView.convertPoint(curPoint, toView: curMessageTVC)
let pointInCurCell:CGPoint = convertedPointToView
if curMessageTVC.message is ResourceMessage {
if (CGRectContainsPoint((curMessageTVC.fileBubbleView?.frame)!, pointInCurCell)) {
let notSupportViewAlertCtrl = UIAlertController(title: "友情提醒", message: "手机上暂时不支持查看该文件,请去web端查看", preferredStyle: UIAlertControllerStyle.Alert)
let sureAlertAction = UIAlertAction(title: "确定", style: UIAlertActionStyle.Destructive, handler: nil)
notSupportViewAlertCtrl.addAction(sureAlertAction)
self.presentViewController(notSupportViewAlertCtrl, animated: true, completion: nil)
}
}
}
}
}
}即可。
效果是:
点击文件:

弹出提醒:

[总结]
让UIView视图支持点击的话,核心代码就只是:
let tapRecog = UITapGestureRecognizer(target: self, action: "clickFileHandler:")
self.messageTableView.addGestureRecognizer(tapRecog)
func clickFileHandler(gestureReconizer:UITapGestureRecognizer){
//...
}转载请注明:在路上 » [已解决]swift让视图支持点击