iOS
UIFeedbackGenerator
Zoeken…
Invoering
UIFeedbackGenerator
en zijn subklassen bieden een openbare interface naar de Taptic Engine® gevonden op iOS-apparaten vanaf iPhone 7. Haptics, met het merk Taptics, geven tactiele feedback voor gebeurtenissen op het scherm. Hoewel veel systeemcontroles out-of-the-box UIFeedbackGenerator
, kunnen ontwikkelaars UIFeedbackGenerator
subklassen gebruiken om UIFeedbackGenerator
aan aangepaste besturingselementen en andere evenementen toe te voegen. UIFeedbackGenerator
is een abstracte klasse die niet rechtstreeks moet worden gebruikt, in plaats daarvan gebruiken ontwikkelaars een van de subklassen.
Trigger Impact Haptic
Voorbeeld laat zien hoe een impact UIImpactFeedbackGenerator
kan worden geactiveerd met UIImpactFeedbackGenerator
na een druk op de knop.
Snel
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()
}
}
Doelstelling 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow