iOS
UIFeedbackGenerator
サーチ…
前書き
UIFeedbackGenerator
とそのサブクラスは、iPhone 7以降のiOSデバイスで見つかったTapticEngine®へのパブリックインターフェイスを提供します.Tapticsというブランド名のHapticsは、画面上のイベントに対して触覚フィードバックを提供します。多くのシステムコントロールではハプティックをすぐに使用できますが、開発者はUIFeedbackGenerator
サブクラスを使用してカスタムコントロールやその他のイベントにハプティクスを追加できます。 UIFeedbackGenerator
は、直接使用すべきではない抽象クラスであり、開発者はそのサブクラスの1つを使用します。
トリガーインパクトハプティック
例は、ボタンを押した後にUIImpactFeedbackGenerator
を使用してインパクトハプティックをトリガする方法を示しています。
迅速
class ViewController: UIViewController
{
lazy var button: UIButton =
{
let button = UIButton()
button.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(button)
button.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
button.setTitle("Impact", for: .normal)
button.setTitleColor(UIColor.gray, for: .normal)
return button
}()
// Choose between heavy, medium, and light for style
let impactFeedbackGenerator = UIImpactFeedbackGenerator(style: .heavy)
override func viewDidLoad()
{
super.viewDidLoad()
button.addTarget(self, action: #selector(self.didPressButton(sender:)), for: .touchUpInside)
// Primes feedback generator for upcoming events and reduces latency
impactFeedbackGenerator.prepare()
}
func didPressButton(sender: UIButton)
{
// Triggers haptic
impactFeedbackGenerator.impactOccurred()
}
}
目標-C
@interface ViewController ()
@property (nonatomic, strong) UIImpactFeedbackGenerator *impactFeedbackGenerator;
@property (nonatomic, strong) UIButton *button;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self.button addTarget:self action:@selector(didPressButton:) forControlEvents:UIControlEventTouchUpInside];
// Choose between heavy, medium, and light for style
self.impactFeedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleHeavy];
// Primes feedback generator for upcoming events and reduces latency
[self.impactFeedbackGenerator prepare];
}
- (void)didPressButton:(UIButton *)sender
{
// Triggers haptic
[self.impactFeedbackGenerator impactOccurred];
}
#pragma mark - Lazy Init
- (UIButton *)button
{
if (!_button)
{
_button = [[UIButton alloc]init];
_button.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:_button];
[_button.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES;
[_button.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
[_button setTitle:@"Impact" forState:UIControlStateNormal];
[_button setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
}
return _button;
}
@end
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow