我能夠從黑UIButton
的圖像的顏色改變爲白色用下面的代碼:改變顏色嵌入到一個按鈕(Swift3)
extension UIImage {
func maskWith(color: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(size, false, scale)
let context = UIGraphicsGetCurrentContext()!
context.translateBy(x: 0, y: size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.setBlendMode(.normal)
let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
context.clip(to: rect, mask: cgImage!)
color.setFill()
context.fill(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}
}
我設置的顏色使用下面的UIButton
的圖像:
//creditCardBtn is the the button variable
creditCardBtn.imageView?.image? = (creditCardBtn.imageView?.image?.maskWith(color: .white))!
我的問題 當用戶設置按鈕的手指,然後慢慢拖動手指離開時,圖像色彩復原。我的想法是使用@IBAction
,並在出現Touch Up Inside
時重置UIButton
的圖像。但是,這並不妨礙圖像重置其顏色。
這裏是我試過的代碼:
@IBAction func creditCardTap(_ sender: UIButton) {
creditCardBtn.imageView?.image?.maskWith(color: .white)
}
我在尋找: 如何防止按鈕,從UI活動重置它的顏色。
您是否嘗試過使用按鈕上的其他操作事件?也許觸摸下,觸摸拖動退出或觸摸取消? – ThePringle
我剛剛嘗試過'在退出時完成,'取消觸摸','向下觸摸','觸摸拖動退出'和'向上觸摸內部'。當用戶進行UI活動時,顏色仍然在變化。 – Sami