-
Notifications
You must be signed in to change notification settings - Fork 6
UIFeedbackGenerator
sustainable-git edited this page Nov 16, 2021
·
1 revision
-
UIFeedbackGenerator
- 상위 클래스임
- Subclass 혹은 생성하여 직접 사용하지 말고 하위 클래스를 사용할 것
-
UIImpactFeedbackGenerator
- 충돌이 일어났을 때에 사용
-
UISelectionFeedbackGenerator
- 선택에 대한 피드백을 줄 때에 사용
-
UINotificationFeedbackGenerator
- 성공, 실패, 오류 등의 피드백을 줄 때에 사용
-
Instance 만들기
- feedbackGenerator = UISelectionFeedbackGenerator()
-
준비(Optional)
- feedbackGenerator?.prepare()
-
동작
- feedbackGenerator?.selectionChanged()
-
해제(Optional)
- feedbackGenerator = nil
- 반응 속도가 느려질 수 있다
-
사용할 만한 것은 SelectionFeedback과 NotificationFeedback
-
약한 입력이 필요할 때는 SelectionFeedback을 사용하면 좋을 것 같다
-
강한 입력이 필요할 때에는 NotificationFeedback을 사용하면 좋을 것 같다
- success, warning는 미묘하게 다름
- error는 여러번 진동함
-
-
ImpactFeedback은 heavy, medium, light, rigid, soft의 차이가 없음
-
작동하는게 몇 없고, 동작이 동일함
- greatestFiniteMagnitude
- infinity
- pi
-
나머지 6개는 진동이 없음
-
//
// ViewController.swift
// SwiftAppTest
//
// Created by shin jae ung on 2021/11/16.
//
import UIKit
class ViewController: UIViewController {
var notificationFeedbackGenerator = UINotificationFeedbackGenerator()
var heavyImpactFeecbackGenerator = UIImpactFeedbackGenerator(style: .heavy)
var mediumImpactFeecbackGenerator = UIImpactFeedbackGenerator(style: .medium)
var lightImpactFeecbackGenerator = UIImpactFeedbackGenerator(style: .light)
var rigidImpactFeecbackGenerator = UIImpactFeedbackGenerator(style: .rigid)
var softImpactFeecbackGenerator = UIImpactFeedbackGenerator(style: .soft)
@IBOutlet weak var stepper: UIStepper!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
stepperTouched(nil)
}
@IBAction func stepperTouched(_ sender: UIStepper?) {
switch stepper.value {
case 0: label.text = "heavy"
case 1: label.text = "medium"
case 2: label.text = "light"
case 3: label.text = "rigid"
case 4: label.text = "soft"
default: label.text = "error"
}
}
private func currentGenerator() -> UIImpactFeedbackGenerator {
switch stepper.stepValue {
case 0: return heavyImpactFeecbackGenerator
case 1: return mediumImpactFeecbackGenerator
case 2: return lightImpactFeecbackGenerator
case 3: return rigidImpactFeecbackGenerator
case 4: return softImpactFeecbackGenerator
default: return UIImpactFeedbackGenerator()
}
}
@IBAction func standard(_ sender: UIButton) { UISelectionFeedbackGenerator().selectionChanged() }
@IBAction func success(_ sender: UIButton) { notificationFeedbackGenerator.notificationOccurred(.success) }
@IBAction func warning(_ sender: UIButton) { notificationFeedbackGenerator.notificationOccurred(.warning) }
@IBAction func error(_ sender: UIButton) { notificationFeedbackGenerator.notificationOccurred(.error) }
@IBAction func h1(_ sender: Any) { currentGenerator().impactOccurred(intensity: .greatestFiniteMagnitude) }
@IBAction func h2(_ sender: Any) { currentGenerator().impactOccurred(intensity: .infinity) }
@IBAction func h3(_ sender: Any) { currentGenerator().impactOccurred(intensity: .leastNonzeroMagnitude) }
@IBAction func h4(_ sender: Any) { currentGenerator().impactOccurred(intensity: .leastNormalMagnitude) }
@IBAction func h5(_ sender: Any) { currentGenerator().impactOccurred(intensity: .nan) }
@IBAction func h6(_ sender: Any) { currentGenerator().impactOccurred(intensity: .pi) }
@IBAction func h7(_ sender: Any) { currentGenerator().impactOccurred(intensity: .signalingNaN) }
@IBAction func h8(_ sender: Any) { currentGenerator().impactOccurred(intensity: .zero) }
@IBAction func h9(_ sender: Any) { currentGenerator().impactOccurred(intensity: .ulpOfOne) }
}
트러블 슈팅
회의록
- 2021-10-25(월)
- 2021-10-26(화)
- 2021-10-27(수)
- 2021-10-28(목)
- 2021-11-01(월)
- 2021-11-02(화)
- 2021-11-03(수)
- 2021-11-04(목)
- 2021-11-08(월)
- 2021-11-09(화)
- 2021-11-10(수)
- 2021-11-11(목)
- 2021-11-15(월)
- 2021-11-16(화)
- 2021-11-17(수)
- 2021-11-18(목)
- 2021-11-22(월)
- 2021-11-23(화)
- 2021-11-24(수)
- 2021-11-25(목)
- 2021-11-29(월)
- 2021-11-30(화)
- 2021-12-01(수)
- 2021-12-02(목)
스크럼
- 2021-10-26(화)
- 2021-10-27(수)
- 2021-10-28(목)
- 2021-10-29(금)
- 2021-11-01(월)
- 2021-11-02(화)
- 2021-11-03(수)
- 2021-11-04(목)
- 2021-11-08(월)
- 2021-11-09(화)
- 2021-11-10(수)
- 2021-11-11(목)
- 2021-11-15(월)
- 2021-11-16(화)
- 2021-11-17(수)
- 2021-11-18(목)
- 2021-11-22(월)
- 2021-11-23(화)
- 2021-11-24(수)
- 2021-11-25(목)
- 2021-11-29(월)
- 2021-11-30(화)
- 2021-12-01(수)