使用滑动操作更改 UIImageView 图像
Posted
技术标签:
【中文标题】使用滑动操作更改 UIImageView 图像【英文标题】:Change UIImageView image with swipe action 【发布时间】:2016-05-23 12:40:35 【问题描述】:在我的 tableview 上,我有一个 UIImageView,我需要在执行滑动操作时更改图像。我有一个 tableview 行的类,所以我更改了代码来尝试这样做。这是代码,但不起作用。我该怎么做?
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) -> CellTableViewFriends
// you need to implement this method too or you can't swipe to display the actions
let cell = self.tableViewFriends.dequeueReusableCellWithIdentifier("CellTableViewFriends") as! CellTableViewFriends;
cell.imgArrow.image = UIImage(named: "myImage")
return cell
【问题讨论】:
【参考方案1】:在您的单元格类中,您可以添加以下方法:
func addSwipeGesture()
let gestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(self.swipedLeft))
gestureRecognizer.direction = .Left
self.addGestureRecognizer(gestureRecognizer)
func swipedLeft(gesture: UIGestureRecognizer!)
//Change picture here
imgArrow.image = UIImage(named: "myImage")
您可以更改方向或添加多个方向。
那么你应该确保在创建单元格时调用 addSwipeGesture 命令,你可以在 cellForRowAtIndexPath 中进行。
希望这会有所帮助!
【讨论】:
【参考方案2】:如果这是你想做的,你应该改变:
let cell = self.tableViewFriends.dequeueReusableCellWithIdentifier("CellTableViewFriends") as! CellTableViewFriends;
到cellForRowAtIndexPath(_:)
let cell = self.tableViewFriends.cellForRowAtIndexPath(indexPath)
【讨论】:
【参考方案3】:您应该将滑动手势识别器添加到自定义单元格类,并处理我认为的该类的滑动。 commitEditingStyle
是用来编辑单元格的,比如删除,所以你不能用它来交换单元格中的图像。
希望这会有所帮助:)
【讨论】:
以上是关于使用滑动操作更改 UIImageView 图像的主要内容,如果未能解决你的问题,请参考以下文章
ui scrollview 中没有手势识别器 uiimageview
当用户开始在 UIImageView 上滑动时,UITableView 滑动操作不起作用
iOS swift UIImageView更改tableView单元格中的图像