使用滑动操作更改 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

UIButton 和滑动手势

当用户开始在 UIImageView 上滑动时,UITableView 滑动操作不起作用

iOS swift UIImageView更改tableView单元格中的图像

如何在 Swift 中使用 UISlider 更改 UIImageView 中的图像

我如何在 Swift iOS 中检测 UIImageView 中的更改图像