Sobes.tech
Middle+

Ի՞նչ իրավիճակներում կարող է առաջանալ այն վիճակը, երբ օգտագործողի մուտքը անջատված է (օգտագործողի փոխազդեցությունը false է) և Vue-ն չի կարող մշակել շոշափման իրադարձությունները։

sobes.tech AI

Պատասխան AI-ից

user interaction enabled false վիճակը UIView մակարդակում iOS-ում նշանակում է, որ այս UIView և նրա ենթաօբյեկտները չեն կարող ստանալ շփման իրադարձություններ:

Այդ իրավիճակները, երբ դա կարող է տեղի ունենալ և ազդել Vue կոմպոնենտների, օրինակ՝ WKWebView-ի միջոցով ներմուծված, իրադարձությունների մշակման վրա՝

  • Ապակյա պատկերի վրա շերտավորումը: Եթե WKWebView-ի վրա տեղադրված է այլ պատկերը isUserInteractionEnabled = true-ով և այն ամբողջությամբ կամ մասնակիորեն ծածկում է WKWebView-ի տարածքը, շփման իրադարձությունները կվերցվեն վերևի պատկերից և Vue կոմպոնենտները WKWebView-ում դրանք չեն ստանա:
  • WKWebView-ի համար շփման դադարեցում: WKWebViewisUserInteractionEnabled հատկությունը սահմանված է որպես false։ Սա ամբողջությամբ դադարեցնում է շփման մշակումը վեբ պատկերի ներսում:
  • WKWebView-ի ծնողական պատկերի շփման դադարեցում: Եթե WKWebView-ը դուստր է որևէ UIView-ի, և այդ UIViewisUserInteractionEnabled-ը սահմանված է որպես 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 հատկության վիճակի ստուգում տարբեր մակարդակներում։