Junior — Middle
Барномаи чӣ гуна муайян мекунад, ки кадом қисми интерфейс бояд ба сенсорӣ ҷавоб гӯяд?
sobes.tech AI
Ҷавоб аз AI
Дар iOS, барои муайян кардани он ки кадом қисми интерфейс бояд ба сенсори дастӣ ҷавобгӯ бошад, механизм hit-testing истифода мешавад. Вақте ки корбар экранро даст мезанад, системаи аз намоиши асосӣ (UIView) оғоз мекунад ва ба таври рекурсивӣ санҷиш мекунад, ки кадом зернамоиш дар зери нуқтаи дастӣ қарор дорад.
Раванд дорои қадамҳои зерин аст:
- Система усули
hitTest(_:with:)-ро дар UIView асосӣ даъват мекунад ва координатҳои дастиро мегузаронад. - UIView санҷиш мекунад, ки оё нуқтаи дастӣ дар дохили марзҳои он (
point(inside:with:)) қарор дорад. Агар не, nil бармегардонад. - Агар дар дохил бошад, UIView зернамоишҳои худро дар тартиби муқобил (аз боло ба поён) мегузарад ва ба онҳо
hitTest(_:with:)-ро даъват мекунад. - Агар ягон зернамоиш не nil баргардонад, маънои онро дорад, ки он бояд дастгирӣ кунад.
- Агар ягон зернамоиш мувофиқ набошад, худи UIView баргардонида мешавад.
Бо ин роҳ, барнома дақиқ муайян мекунад, ки кадом унсури интерфейс дар зери ангушти корбар қарор дорад ва омода аст, ки ҳодисаро қабул кунад.