Ի՞նչ իրավիճակներում կարող է առաջանալ այն վիճակը, երբ օգտագործողի մուտքը անջատված է (օգտագործողի փոխազդեցությունը false է) և Vue-ն չի կարող մշակել շոշափման իրադարձությունները։
sobes.tech AI
Պատասխան AI-ից
user interaction enabled false վիճակը UIView մակարդակում iOS-ում նշանակում է, որ այս UIView և նրա ենթաօբյեկտները չեն կարող ստանալ շփման իրադարձություններ:
Այդ իրավիճակները, երբ դա կարող է տեղի ունենալ և ազդել Vue կոմպոնենտների, օրինակ՝ WKWebView-ի միջոցով ներմուծված, իրադարձությունների մշակման վրա՝
- Ապակյա պատկերի վրա շերտավորումը: Եթե
WKWebView-ի վրա տեղադրված է այլ պատկերըisUserInteractionEnabled = true-ով և այն ամբողջությամբ կամ մասնակիորեն ծածկում էWKWebView-ի տարածքը, շփման իրադարձությունները կվերցվեն վերևի պատկերից և Vue կոմպոնենտներըWKWebView-ում դրանք չեն ստանա: WKWebView-ի համար շփման դադարեցում:WKWebView-իisUserInteractionEnabledհատկությունը սահմանված է որպեսfalse։ Սա ամբողջությամբ դադարեցնում է շփման մշակումը վեբ պատկերի ներսում:WKWebView-ի ծնողական պատկերի շփման դադարեցում: ԵթեWKWebView-ը դուստր է որևէUIView-ի, և այդUIView-իisUserInteractionEnabled-ը սահմանված է որպեսfalse, ապա նրա բոլոր դուստրերը, այդ թվումWKWebView-ը, չեն ստանա շփման իրադարձություններ:- Մոդալային պատկերը կամ ազդանշանային կառավարման համակարգը: Մոդալային պատկերի (
UIViewController.present) կամ համակարգային ազդանշանային կառավարման համակարգի ցուցադրումըWKWebView-ի վրա վերևում բոլոր շփման իրադարձությունները կվերցնի մինչև այն փակվի: - Անիմացիաներ: Որոշ անիմացիաների ժամանակ կարող է ժամանակավորապես դադարեցնել շփումը՝ կանխելու անպիտան գործողությունները անիմացիայի ընթացքում:
- Երկարատև ֆոնային գործողություններ: Հին կառույցներում կամ սխալ իրականացմամբ, երկարատև ֆոնային գործողության ժամանակ (օրինակ՝ տվյալների բեռնում) սխալմամբ կարող է դադարեցնել UI-ի շփումը՝ կանխելու օգտատիրոջ գործողությունները մինչև գործողության ավարտը:
- Auto Layout-ի սխալները: Անհամապատասխան Auto Layout կարգավորումները կարող են հանգեցնել
WKWebView-ի անտեսանելիությանը (չափը 0, թաքնված մյուս պատկերի հետևում) կամ նրա ֆրեյմի դուրս գալու էկրանից, ինչը իրականում դարձնում է այն անգործունակ օգտատիրոջ շփման համար:
Vue-ի համատեքստում, որը աշխատում է WKWebView-ի ներսում, այս բոլոր iOS-специֆիկ պատճառները կարող են հանգեցնել այն բանի, որ touchstart, touchend, click և այլն իրադարձությունները, որոնք անհրաժեշտ են Vue-դիրեկտիվների (v-on:click, @tap Quasar/Ionic Vue-ում) կամ ուղղակիորեն իրադարձությունների մշակման համար, պարզապես չեն հասնի JavaScript-կոդին WKWebView-ում: Այսպիսի իրավիճակում սխալների հայտնաբերում պահանջում է տեսողականության հիերարխիայի ստուգում Xcode-ում (ViewController Hierarchy Debugger) և isUserInteractionEnabled հատկության վիճակի ստուգում տարբեր մակարդակներում։