У меня есть число UIButton
экземпляров в UIViewController
, и я хочу выполнить пару действий, когда любая из этих кнопок нажата с нажатием (полностью вниз), я не делаю Не знаете здесь точный термин (возможно, контакт с силой)?Лучший способ выполнить действие на 3D Touch на UIButton
Поэтому, когда давление UIButton
надавлено, я хочу дать гаплотную обратную связь через вибрацию, изменить источник изображения кнопки и сделать некоторые другие вещи. Затем, когда давление отпускается, я хочу восстановить источник изображения кнопки в нормальном состоянии и сделать еще несколько вещей.
Что такое самый простой способ сделать это?
Должен ли я сделать свой собственный UIButton
, как показано ниже, или есть методы, которые можно переопределить для трехмерного нажатия «нажатие» и «выделение».
Это мой пользовательский код UIButton. Должен ли я определить, с помощью проб и ошибок, какой должна быть максимальная сила? Также как я могу изменить источник изображения для каждой кнопки самым простым способом?
import AudioToolbox
import UIKit
class customButton : UIButton {
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
print("% Touch pressure: \(touch.force/touch.maximumPossibleForce)");
if touch.force > valueThatIMustFindOut {
AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
// change image source
// call external function
}
}
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
print("Touches End")
// restore image source
// call external function
}
}
Пожалуйста, обратите внимание, что я новичок в Swift, поэтому я хотел бы использовать графический интерфейс в Xcode для создания пользовательского интерфейса как можно больше. Поэтому я хотел бы избежать создания пользовательского интерфейса из кода.