Я пытаюсь реализовать UIButton's
эффект гладкого касания, как мы используем калькулятор в наших устройствах iPhone
. Однако я пробовал код в Objective c
и Swift
, но нашел тот же результат, который не соответствует желанию.UIButton smooth touch effect
Попробовал код:
@IBAction func someAction(sender: UIButton){
button.setBackgroundColor(UIColor.blackColor(), forState: UIControlState.Highlighted)
}
// using extension
extension UIButton {
func setBackgroundColor(color: UIColor, forState: UIControlState) {
UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), color.CGColor)
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRect(x: 0, y: 0, width: 1, height: 1))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setBackgroundImage(colorImage, forState: forState)
}}
Объяснение: приведенный выше код работает отлично, как мне нужно, но приложенное эффект не так гладко. Фактически, когда я нажимаю кнопку, для нанесения фонового изображения на него требуется нано-секунда, и когда я отпускаю сенсорное изображение, внезапно исчезает фоновое изображение.
Я также пробовал это в Objective c
используя TouchUpInside
и TouchDown
событие но результат был найден.
Спасибо за ваше время.
Медленная часть - это обработка CoreGraphics в расширении кнопки. почему вы не можете использовать UIButton setBackgroundColor для изменения цвета? – GeneCode
@GeneCode это не об изменении цвета, а о применении эффекта над кнопкой. – vaibhav