Intern
Kuidas rakendused reageerivad nuppudele klõpsamisele?
sobes.tech AI
Vastus AI-lt
Operatsioonisüsteemilt saadetud touch sündmus töödeldakse.
Protsess:
- Kasutaja puudutab ekraani.
- iOS registreerib
UITouchsündmuse. - Sündmus saadetakse peamisele aknale (
UIWindow). - Aken edastab sündmuse
Responder Chain-ile (Vastaja ahel). - Nupu (
UIButton) vajutamine tuvastatakse kui sündmusUIControlEventTouchUpInside. UIButtonkutsub välja selle sündmusega seotud käsu meetodi (target/action).
Näide:
// Seome target/action sündmusega "nupu sisemine vajutus"
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
// Määrame käsu meetodi
@objc func buttonTapped() {
// Logika pärast nupu vajutamist
print("Nupp on vajutatud!")
}
Vastajate ahel (Responder Chain):
UIView(nupp)- Nupu superview
- Vaatekontroller (
UIViewController) - Aken (
UIWindow) - Rakenduse delegaat (
UIApplicationDelegate)
Sündmus liigub ülespoole ahelas kuni selle töötlemiseni või tagasilükkamiseni. UIButton tavaliselt ise töötleb touchUpInside.