ios - 如何在不重置位置的情况下更改UIButton?

标签 ios swift uibutton swift4 uipangesturerecognizer

我做了一个可拖动的按钮

let buttonGesture = UIPanGestureRecognizer(target: self, action: #selector(draggedButton(_:)))
menuButton.isUserInteractionEnabled = true
menuButton.addGestureRecognizer(buttonGesture)

当按钮拖动到一定位置时,图像会发生变化。

@objc func draggedButton(_ sender:UIPanGestureRecognizer){
    self.view.bringSubview(toFront: menuButton)
    let translation = sender.translation(in: self.view)

    menuButton.center = CGPoint(x: menuButton.center.x + translation.x, y: menuButton.center.y + translation.y)
    sender.setTranslation(CGPoint.zero, in: self.view)

    if(menuButton.center.x < 100){
        menuButton.setImage(UIImage(named: "newimage"), for: UIControlState.normal)
    }
}

但是setImage之后,按钮会重置位置,如何防止这种情况发生?

最佳答案

尝试设置按钮背景图像而不是按钮图像。因为设置图像会重新调整其位置。

关于ios - 如何在不重置位置的情况下更改UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48237613/

相关文章:

ios - Swift:通过 Facebook 应用捕获 Facebook 登录事件

ios - 本地化 siri 捐赠的快捷方式

xcode - (Xcode/Swift) 如何在向下滚动 UIWebView 时隐藏工具栏?

ios - 如何以编程方式将触摸事件伪造到 UIButton?

iphone - 如何在 for 循环中使用动画设置按钮 alpha?

swift - 立即 UIButton 旋转变换,带动画比例

ios - 如何通过 segue Swift 4 将数据从 View Controller 的 UITableViewCell 类传递到另一个 ViewController?

ios - 当 self 被调用时,自定义 CTPlotDataSource 未被调用

ios - 应用程序本地化不适用于 Storyboard

Swift 泛型错误 : Cannot convert value of type 'Type<T>' to expected argument type 'Type<_>'