İstifadəçi girişinin deaktiv olduğu (istifadəçi qarşılıqlı əlaqəsi false) və Vue-nun toxunma hadisələrini işləyə bilmədiyi vəziyyətlər hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-də UIView səviyyəsində user interaction enabled false vəziyyəti, bu UIView və onun alt görünüşlərinin toxunma hadisələrini qəbul edə bilməyəcəyi deməkdir.
Bunun baş verə biləcəyi və Vue komponentlərinin işlənməsinə təsir edə biləcək vəziyyətlər, məsələn, WKWebView vasitəsilə yerləşdirilmiş:
- Şəffaf görünüşün üst-üstə düşməsi: Əgər
WKWebViewüzərinə başqa bir görünüşisUserInteractionEnabled = trueilə yerləşdirilib və bu, tam və ya qismənWKWebViewsahəsini örtürsə, toxunma hadisələri yuxarı görünüş tərəfindən tutulacaq vəWKWebViewiçindəki Vue komponentləri onları ala bilməyəcək. WKWebViewüçün qarşılıqlı əlaqənin deaktiv edilməsi:WKWebView-in özününisUserInteractionEnabledxüsusiyyətifalse-a təyin olunubsa, veb görünüşündəki toxunma idarəsi tamamilə deaktiv olur.WKWebView-in valideyn görünüşü üçün qarşılıqlı əlaqənin deaktiv edilməsi: ƏgərWKWebViewbirUIView-in uşağıdırsa və buUIViewisUserInteractionEnabled = false-a təyin olunubsa, onun bütün uşaqları, o cümlədənWKWebView, toxunma hadisələrini qəbul etməyəcək.- Modal görünüşlər və ya xəbərdarlıq idarəediciləri:
UIViewController.presentvasitəsilə göstərilən modal görünüş və ya sistem xəbərdarlıq idarəedicisi,WKWebView-i ehtiva edən əsas görünüş üzərində bütün toxunma hadisələrini ələ keçirir və modal görünüş və ya xəbərdarlıq bağlanana qədər onları qəbul edir. - Animasiyalar: Bəzi animasiyalar zamanı, istifadəçinin istəmədiyi hərəkətlərin qarşısını almaq üçün, görünüşlə qarşılıqlı əlaqə müvəqqəti olaraq deaktiv edilə bilər.
- Uzunmüddətli fon əməliyyatları: Köhnə memarlıqda və ya yanlış tətbiqdə, uzunmüddətli fon tapşırıqları (məsələn, məlumat yükləmə) zamanı, istifadəçi hərəkətlərinin qarşısını almaq üçün, UI ilə qarşılıqlı əlaqə səhvən deaktiv edilə bilər.
- Auto Layout səhvləri: Yanlış Auto Layout tənzimləmələri,
WKWebView-in görünməz olmasına (ölçü 0, başqa görünüş tərəfindən gizlənmiş) və ya ekran xaricində yerləşməsinə səbəb ola bilər, bu da onu istifadəçi qarşılıqlı əlaqəsi üçün aktiv etməz.
Vue kontekstində, WKWebView daxilində işləyən, bu iOS-ə xas səbəblər, touchstart, touchend, click və s. hadisələrin, Vue direktivlərinin (v-on:click, @tap Quasar/Ionic Vue-də) və ya hadisələrin birbaşa işlənməsi üçün lazım olanların, sadəcə olaraq, WKWebView-dəki JavaScript koduna çatmamasına səbəb olur. Belə bir vəziyyətdə debugging üçün, Xcode-də görünüşlər hierarxiyasını (ViewController Hierarchy Debugger) və isUserInteractionEnabled xüsusiyyətinin müxtəlif səviyyələrdə vəziyyətini yoxlamaq lazımdır.