-ã²ã¹ãã«äŒããŠå æ ã ã£ãããšã¯ç§ã«ãšã£ãŠéåžžã«éèŠã§ãã ããã§ã¯ãç§ãéåžžã«é·ãéç¥ãåã£ãŠãã人ãæè¿ç¥ãåã£ã人ããŸã äŒã£ãŠããªã人ãããŸãã CocoaHeadsãžããããã
埮å°çžäºäœçšã«ã€ããŠèª¬æããŸãã ããã¯ã¡ãã£ãšããã¯ãªãã¯ã§ã-ç§ãã¡ã¯ãšã³ãžãã¢ã§ãããéçºè ã§ãããœãããŠã§ã¢ã®éšåã«ã€ããŠè©³ãã説æããŸããããŸãã¯ãã€ã¯ãã€ã³ã¿ã©ã¯ã·ã§ã³ãªã©ã®éåžžã«äººéçãªãããã¯ããå§ããŸãããã ãã®çµæããã¿ã³ãå°ããªããŒããŒãããŒãªã©ã®éåžžã«å°ããªèŠèŠã³ã³ããŒãã³ããããå¹ççãã€ç°¡åã«èšèšããæ¹æ³ãåŠã¶ããã«ãæè¡çãªéšåã«ãã®äººéçããŒããé©çšããŸãã ãããã¯ã¢ãã¡ãŒã·ã§ã³ã§é£œåããŠãããåå²ããã¢ãã¡ãŒã·ã§ã³ã³ãŒãã¯éåžžã«è€éã«èŠããããšãå€ããç¶æããã®ã¯éåžžã«å°é£ã§ãã
ããããæåã«ãå°ãæ°ãæ£ããã ããã«ã€ããŠèããŠãã ãããéçºè ã«ãªãããšã«æ±ºãããšãã®ããšãèŠããŠããŸããïŒ ã¯ã£ããèŠããŠããŸãã ãã¹ãŠã¯ããŒãã«ããå§ãŸããŸããã ObjCãåŠã¶ããšã«æ±ºããŸããã ãã¡ãã·ã§ããã«ãªèšèªã楜ããããã®ããã«ãåºç¯å²ã«ãããèšç»ãªãã ããã°ãªã¿ã¯ã©ã³ãã®æ¬ãèŠã€ããŠãç« ããšã«èªã¿å§ããåãšã¯ãµãµã€ãºãè¡ãããã§ãã¯ããèªãã§ãããŒãã«ã«ãã©ãçããŸããã ãã®åŸãç§ã¯æåã«ããªã²ãŒããã¿ãŒã³ãããæ£ç¢ºã«ã¯ãã®ãµãçš®ã§ãããããŒã¿ãœãŒã¹ããããŒã¿ãœãŒã¹ã«ç²ŸéããŸããã ãã®ãã©ãã€ã ã¯ãä»ã§ã¯éåžžã«åçŽã«æããŸããããŒã¿ãœãŒã¹ãããªã²ãŒããããããã¹ãŠãåçŽã§ãã ããããããã¯ç§ã®å¿ãå¹ãé£ã°ããŸããïŒå®å šã«ç°ãªãããŒã¿ããããŒãã«ãåé¢ããã«ã¯ã©ãããã°ããã§ããïŒ çŽã®äžã«ããŒãã«ããããããã«ç¡éæ°ã®è¡ãå®å šã«æœè±¡çãªããŒã¿ãå ¥ããããšãã§ããŸããã ç§ã«å€§ããªåœ±é¿ãäžããŸããã ããã°ã©ãã³ã°ãéçºã«ã¯å€§ããªãã£ã³ã¹ããããããããé©çšããããšã¯éåžžã«èå³æ·±ããšæããŸããã ãã以æ¥ãç§ã¯éçºè ã«ãªãããšã決ããŸããã
éçºäžã«ãããŸããŸãªãã¿ãŒã³ã«ééããŸããã 巚倧ãªãã¢ããªã±ãŒã·ã§ã³å šäœãèšè¿°ããã¢ãŒããã¯ãã£ãšåŒã°ããŸãã å°ããªãã¿ã³ã«æ°åååãŸãå°ããªãã®ã ãããã®ãã¹ãŠã®ãã¿ãŒã³ã¯ã空äžããã§ã¯ãªãã人éçã»ã¯ã¿ãŒããã®ãã®ã§ããããšãç解ããããšãéèŠã§ãã åãããªã²ãŒããã¿ãŒã³ã å§ä»»ã¯ããã°ã©ãã³ã°ã®ãã£ãšåã«ç»å Žããããã°ã©ãã³ã°ã¯ããå¹ççãªäœæ¥ã®ããã«ããããã¹ãŠã®äººéçäºé ãæ¡çšããŠããŸãã
ä»æ¥ã¯ãå¥ã®äººéçãªããšãåŒãç¶ãå¥ã®ã¢ãããŒãã«ã€ããŠã話ããŸãã ç¹ã«ããã€ã¯ãçžäºäœçšã«ã€ããŠã
ããã¯ãã¹ãŠããŒããŒããå§ãŸããŸããã Yandexã®åã®åã®ä»äºã§ãGoogleãããªã¢ã«ãã¶ã€ã³ããŒããŒãç¹°ãè¿ãäœæ¥ãããŸããã ãããã¯2ã€ããã1ã€ã¯äžå®ããã1ã€ã¯å®çŸ©æžã¿ã§ãã ç§ã¯ãããã1ã€ã«çµåããä»äºããããŸããã圌ã¯ç¹å®ãšäžå®ã®äž¡æ¹ãããããšãã§ããªããã°ãªããŸããã§ããããå³ããèŠä»¶ããããŸãã-ããã¯éåžžã«ã¹ã ãŒãºã§ããã ãã€ã§ããããç¶æ ããå¥ã®ç¶æ ã«ç§»è¡ã§ãããã¹ãŠãã¹ã ãŒãºãã€æ£ç¢ºã«ã¢ãã¡ãŒã·ã§ã³åãããå¿ èŠããããŸãã
ç§ã¯è³¢ãéçºè ã§ããç§ã¯ãã¹ãŠãããŸããã ãããã«ãã麺ã®ã³ãŒãã1000è¡ä»¥äžãããŸããã ããã¯æ©èœããŸããããã³ãŒãã¬ãã¥ãŒã«é¢ããã¯ãŒã«ãªã³ã¡ã³ããåãåããŸããïŒã誰ããã®ã³ãŒããç·šéããªãããšãæ¬åœã«é¡ã£ãŠããŸããã ãããŠãç§ã«ãšã£ãŠããã¯å®éã«ã¯äžé©åã§ãã ç§ã¯ã²ã©ãã³ãŒããæžããŸããã ã¯ãŒã«ã«åäœããç§ã®æé«ã®ã¢ãã¡ãŒã·ã§ã³ã®1ã€ã§ããããã³ãŒãã¯ã²ã©ããã®ã§ããã
ä»æ¥ã¯ããã®ä»äºãèŸããåŸã«èŠã€ããã¢ãããŒãã説æããããšæããŸãã

æã人éçãªãããã¯ã§ãããã€ã¯ãçžäºäœçšã¢ãã«ããå§ããŸãããã ãããã¯ã©ã®ããã«åã蟌ãŸããäžè¬çã«ã¢ããªã±ãŒã·ã§ã³ã®ã©ãã«é ãããŠããŸããïŒ ç§ãã¡ã¯æè¡ã®äžçã§ãã®ã¢ãã«ã䜿ãç¶ããŠããŸãã ã¬ã³ããªã³ã°ãšã¢ãã¡ãŒã·ã§ã³ãæ±ãUIViewãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã ç¹ã«ãUIViewã®CALayerãšå¯æ¥ã«çµ±åãããŠåäœããCAActionã¡ã«ããºã ã«ã€ããŠè©³ãã説æããŸãã ãããŠãå°ããªäŸãèããŠã¿ãŸãããã
æåã«å®çŸ©ã ã©ããããèè ã¯æ¥é èŸããã€ã¯ãããæ¬åœã«å¥œãã§ãããããã¯ããããã®çžäºäœçšã¯ãªãããµã€ãºã¯é¢ä¿ãããŸããã ç°¡åã«ããããã«ãåã«çžäºäœçšãšåŒã³ãŸãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ãšã®ããåããæåããæåŸãŸã§èšè¿°ã§ãã䟿å©ãªã¢ãã«ã§ãã 4ã€ã®ãã€ã³ãã§æ§æãããŸããããªã¬ãŒããã®å¯Ÿè©±ã§å®è£ ããå¿ èŠãããããžãã¹ããžãã¯ããŠãŒã¶ãŒã«äœããäŒããããã®ãã£ãŒãããã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã®å€æŽã§ãã
1ã€ã®ã¹ããŒãªãŒã3ã€ã®ç°ãªã圹å²ã§èª¬æããŸãã éçºã§æãéèŠãªããšãšããŠããŠãŒã¶ãŒããå§ããŸãã å ±åã®æºåãããŠãããšãã«ãç æ°ã«ãªããŸããã ç§ã¯è¬å±ãèŠã€ããå¿ èŠããããYandex.MapãéããŸããã ç§ã¯ã¢ããªã±ãŒã·ã§ã³ãéãããããèŠãŠãããã¯ç§ãèŠãŠãäœãèµ·ãããŸããã ãã®åŸãç§ã¯ãŠãŒã¶ãŒã§ãããç§ãã¡ã€ã³ã§ããããšã«æ°ä»ããŸãããã¢ããªã±ãŒã·ã§ã³ã§äœããã¹ããã«ã€ããŠæ瀺ãåºããŸãã ç§ã¯åãã決ãããæ€çŽ¢ããã¿ã³ãã¯ãªãã¯ãããè¬å±ããšå ¥åãããOKããã¯ãªãã¯ããŸãããã¢ããªã±ãŒã·ã§ã³ã¯å éšäœæ¥ãè¡ããç§ã®é£ã«ããå¿ èŠãªè¬å±ãèŠã€ããŠãç»é¢ã«è¡šç€ºããŸããã
ç§ã¯æ£ãããã®ãæ€çŽ¢ããè¬å±ã«å ããŠãç¹å¥ãªãã¿ã³ãç»é¢ã«è¡šç€ºãããŠããããšãçºèŠããŸãã-ã«ãŒããæ§ç¯ããŸãã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã¯æ°ããç¶æ ã«ç§»è¡ããŸããã ç§ã¯ãããã¯ãªãã¯ããŠãè¬å±ã«è¡ããŸããã è¬å±ãèŠã€ããããã«-ç§ã¯äœããã®çç±ã§ãã®ã¢ããªã±ãŒã·ã§ã³ã«å ¥ã£ãã ç§ã¯åœŒå¥³ã«é£çµ¡ããŸããã ç§ã¯å¹žããªãŠãŒã¶ãŒã§ãã
ãã®ã¢ããªã±ãŒã·ã§ã³ãç»å Žãããã®äžããäœããæ¢ãããšãã§ããããã«ãªãåã«ãæåã«éçºãããŸããã ãã®ããã»ã¹ãæãã€ãããšããUXãã¶ã€ããŒã¯ã©ãæããŸãããïŒ ãã¹ãŠã¯ããŠãŒã¶ãŒãšã¢ããªã±ãŒã·ã§ã³ããäºããèŠããšãã«ãã¥ãŒãã·ãŒã³ããæãåºãå¿ èŠããããäœãèµ·ãããªããšããäºå®ããå§ãŸããŸããã ãã®ããã«ã¯ãäœããã®ããªã¬ãŒãå¿ èŠã§ããã ãã¹ãŠã«å§ãŸãããããããã§ããã©ããããå§ããå¿ èŠããããŸããã
ããªã¬ãŒãéžæãããŸãã-æ€çŽ¢ãã¿ã³ã ã¯ãªãã¯ãããšãæè¡çãªèŠ³ç¹ããåé¡ã解決ããå¿ èŠããããŸããã ãµãŒããŒäžã®ããŒã¿ãèŠæ±ããå¿çã解æããäœããã®æ¹æ³ã§ã¢ãã«ãæŽæ°ããåæããŸãã ãŠãŒã¶ãŒã®çŸåšã®äœçœ®ãªã©ãèŠæ±ããŸãã ãããŠããã®ããŒã¿ãåŸãŠããã¹ãŠã®è¬å±ãã©ãã«ããããæ£ç¢ºã«ææ¡ããŠããŸãã
ããã§çµäºããããã§ãã çµå±ãåé¡ã解決ãããã¹ãŠã®è¬å±ãèŠã€ããŸããã åé¡ã1ã€ã ããããŸãããŠãŒã¶ãŒã¯ãŸã ãããã®è¬å±ã«ã€ããŠäœãç¥ããŸããã 圌ã¯ãããç解ããå¿ èŠããããŸãã
ã©ããããããããã®åé¡ã®è§£æ±ºçããŸãšããŠã圌ããããç解ã§ããããã«ãçŸããããã±ãŒãžã§ããã圌ã«å±ããã ãŠãŒã¶ãŒã¯äººéã§ãããæèŠãéããŠå€ã®äžçãšããåãããããšããããŸããã æè¡ã®çŸç¶ã§ã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®éçºè ãšããŠãèŠèŠ-ç»é¢ã«äœãã衚瀺ããããšãèŽèŠ-ã¹ããŒã«ãŒã§åçŸããããšã觊èŠã䜿çšããããšã§ããŠãŒã¶ãŒãæã§æŒãããšãã§ããŸãã
ãããã人éã¯ã¯ããã«æ©èœçã§ãã ããããæè¡ã®çŸç¶ã¯ãçŸæç¹ã§ã¯ããã3ã€ã«ããé Œãããšãã§ããªããããªãã®ã§ãã ãã®å Žåãç»é¢ãéžæããå¿ èŠãªæå¯ãã®è¬å±ãå°å³ã®äžéšã«è¡šç€ºãããããã®è¬å±ã«é¢ãã詳现æ å ±ã®ãªã¹ãã衚瀺ããŸãã ãããŠãããã¯ãŸãã«ãã¹ãŠã§ããããŠãŒã¶ãŒã¯è¬å±ãèŠã€ãããã¹ãŠãããŸãããããã«æãããŸãã
ããããåé¡ããããŸãã ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãå ¥åãããšãã圌ã¯è¬å±ã®å Žæãããããªãç¶æ³ã«ãããŸããã ãããŠåœŒã®ä»äºã¯åœŒå¥³ãèŠã€ããããšã§ããã ããããä»ã§ã¯ç¶æ³ãå€ãã£ãŠãããè¬å±ãã©ãã«ããããç¥ã£ãŠããããã¯ãè¬å±ãæ¢ãå¿ èŠã¯ãããŸããã 圌ã«ã¯æ¬¡ã®ä»äºããããŸãã-次ã®è¬å±ãžã®éé ãååŸããããšã ãã®ãããç»é¢ã«è¿œå ã®ã³ã³ãããŒã«ã衚瀺ããå¿ èŠããããŸããç¹ã«ãããã¯ã«ãŒããæ§ç¯ããããã®ãã¿ã³ã§ããã€ãŸããã¢ããªã±ãŒã·ã§ã³ãå¥ã®ç¶æ ã«ç§»è¡ãã次ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã®æ°ããããªã¬ãŒãåã³åãå ¥ããæºåãã§ããŠããŸãã
UXãã¶ã€ããŒããã®ãã¹ãŠãæãã€ããŠãéçºè ã®ãšããã«æ¥ãŠããŠãŒã¶ãŒããã¿ã³ãã¯ãªãã¯ããæ¹æ³ãã©ã®ããã«ãäœãèµ·ããããã©ã®ããã«æ€çŽ¢ããããããŠãŒã¶ãŒãã©ã®ããã«æºè¶³ããŠããããDAUãå¢ããæ¹æ³ãªã©ã«ã€ããŠèª¬æãå§ãããšæ³åããŠãã ããã æåã«ãã¿ã³ã«ã€ããŠèšåãããšããéçºè ããã®æªè§£æ±ºã®è³ªåã®ã¹ã¿ãã¯ã¯ãæåã®æã®ã©ããã§ããµããŠããŸããã
圌ã¯æ ¹æ°ãããã¹ãŠã«è³ãåŸããæåŸã«ããããçµäºãããã倧äžå€«ãããã¯ã¯ãŒã«ã ãšèšããŸããããã¿ã³ã«ã€ããŠè°è«ããŸãããã ããã¯éèŠãªèŠçŽ ã§ãã
è°è«ã®äžã§ããã¿ã³ã¯æ¬è³ªçã«ããªã¬ãŒã§ãããããèªäœã«ããžãã¯ãå«ãŸããŠãããç¹ã«ããŠãŒã¶ãŒãç»é¢ãã¯ãªãã¯ããããšã«é¢ããã¡ãã»ãŒãžãã·ã¹ãã ããåä¿¡ã§ããããšãããããŸããã ãã®ã¯ãªãã¯ã«åºã¥ããŠã圌女ã¯ã€ãã³ãã®ãã§ãŒã³ãéå§ã§ããŸããããã¯ãåããã¿ã³ãããŸããŸãªããã»ã¹ãéå§ããå¿ èŠæ§ã«é¢ããã¡ãã»ãŒãžãç°ãªããªããžã§ã¯ãã«éä¿¡ããããšããå§ãŸããŸãã
ãã¿ã³ãæŒããšããã¿ã³ã®ç¶æ ãå€ããããã¿ã³ãæŒãããŸãã ãŠãŒã¶ãŒãé¢ããšãæŒãããªããªããŸãã ã€ãŸãããŠãŒã¶ãŒã«ãã£ãŒãããã¯ãæäŸãããŠãŒã¶ãŒããã®ãã¿ã³ã«äœãæåŸ ããããç解ã§ããããã«ããŸãã ãŸãããã¿ã³ã¯ããŸããŸãªç¶æ ã§æŒããããæŒããããã¢ã¯ãã£ããŸãã¯éã¢ã¯ãã£ãã«ããããç¶æ ããšã«ç°ãªãããžãã¯ã«åŸã£ãŠç§»åãããã§ããŸãã
ãããã£ãŠãããªã¬ãŒãããžãã¹ããžãã¯ããã£ãŒãããã¯ãããã³ç¶æ ã®å€æŽã§æ§æãããåããã€ã¯ãã€ã³ã¿ã©ã¯ã·ã§ã³ã¢ãã«ãããŠãŒã¶ãŒã±ãŒã¹å šäœã®ã¹ã±ãŒã«ãæå¯ãã®è¬å±ã®å€§èŠæš¡ãªæ€çŽ¢ãªã©ãããŸããŸãªã¹ã±ãŒã«ã§ã¢ããªã±ãŒã·ã§ã³ãèšè¿°ã§ããããšãããããŸãããã ãããå°ããªãã¿ã³ã®é¢ã§ã
ããã¯éåžžã«äŸ¿å©ãªã¢ãã«ã§ãããããŒã å ã®ããåããç°¡çŽ åããããªã¬ãŒãããžãã¹ããžãã¯ããã£ãŒãããã¯ãç¶æ å€æŽãšãã4ã€ã®ãšã³ãã£ãã£ãåå¥ã«ããã°ã©ã ã§èšè¿°ããããšãã§ããŸãã ããã䜿çšããããã«UIKitãæäŸãããã®ãèŠãŠã¿ãŸãããã ãããŠãæäŸããã ãã§ãªãã䜿çšããŸãã UIViewãµãã¯ã©ã¹ã®å°ããªã³ã³ããŒãã³ãã§ããããŸããŸãªã¢ãã¡ãŒã·ã§ã³ãå®è£ ããå Žåããã®ã¡ã«ããºã ã®ã¿ã䜿çšããå¥ã®æ¹æ³ã§ã¯äœ¿çšããŸããã
UIViewããå§ããŸããããUIViewããã®ã¢ãã«ã«ã©ã®ããã«é©åããããèŠãŠã¿ãŸãããã 次ã«ããããã®ç¶æ ããµããŒãããããã«æäŸããCALayerãæ€èšããæãèå³æ·±ãç¬éã§ããã¢ã¯ã·ã§ã³ã®ã¡ã«ããºã ãæ€èšããŸãã
UIViewããå§ããŸãããã ããã䜿çšããŠãç»é¢ã«ããã€ãã®é·æ¹åœ¢ã衚瀺ããŸãã ããããå®éã«ã¯ãUIViewã¯ããèªäœãæç»ããæ¹æ³ãç¥ããŸãããããã«ã¯å¥ã®CALayerãªããžã§ã¯ãã䜿çšããŸãã å®éãUIViewã¯ãUIViewã®ãµãã¯ã©ã¹ã§å®çŸ©ããAPIã«ã€ããŠã®ä»ã®åŒã³åºããšåæ§ã«ãã·ã¹ãã ã«è§Šããããšã«é¢ããã¡ãã»ãŒãžã®åä¿¡ã«åãçµãã§ããŸãã ãããã£ãŠãUIViewèªäœãããªã¬ãŒããžãã¯ãã€ãŸããããã€ãã®ããã»ã¹ã®èµ·åãå®è£ ããã·ã¹ãã ãããããã®ã¡ãã»ãŒãžãåä¿¡ããŸãã
UIViewã¯ãçºçããã€ãã³ããããªã²ãŒãã«éç¥ãããããµãã¹ã¯ã©ã€ããŒã«ã¡ãã»ãŒãžãéä¿¡ãããããããšãã§ããŸããããšãã°ãUIControlãç°ãªãã€ãã³ãã«ãµãã¯ã©ã¹åããŸãã ãã®ããã«ããŠããã®UIViewã®ããžãã¹ããžãã¯ãå®è£ ãããŸãã ãã¹ãŠã«ããžãã¹ããžãã¯ãããããã§ã¯ãªãããããã®å€ãã¯è¡šç€ºèŠçŽ ã«ããããããžãã¹ããžãã¯ã®æå³ã§ã®ãã£ãŒãããã¯ã¯ãããŸããã

ããªã¬ãŒãšããžãã¹ããžãã¯ã®2ã€ã®ãã€ã³ãã«æ³šç®ããŸããã ãŸããUIViewã®ãã£ãŒãããã¯ãšç¶æ å€æŽã¯ã©ãã«é ããŠããŸããïŒ ãããç解ããã«ã¯ãUIViewèªäœãååšããªãããšãèŠããŠããå¿ èŠããããŸãã äœæããããšãCALayerã®ãµãã¯ã©ã¹ã§ããããã¯ã¬ã€ã€ãŒãäœæããŸãã

ãããŠã圌ã®ä»£ç人ãä»»åœããŸãã UIViewãCALayerã䜿çšããæ¹æ³ãç解ããããã«ãããŸããŸãªç¶æ ã§ååšã§ããŸãã
ããç¶æ ãå¥ã®ç¶æ ãšåºå¥ããæ¹æ³ã¯ïŒ ãããã¯ã©ããã«ä¿åããå¿ èŠãããããŒã¿ã®ã»ãããç°ãªããŸãã CALayerãUIViewã«æäŸããæ©èœãèæ ®ããŠãç¶æ ãä¿åããŸãã

UIViewãšCALayerã®éã®ããåãã§ããUIViewã«ã¯ãCALayerå ã®ã¹ãã¬ãŒãžãæŽæ°ãããšããè¿œå ã®ã¿ã¹ã¯ããããŸãã
ã»ãšãã©ç¥ãããŠããªãäºå®ïŒCALayerã¯é£æ³é åãšããŠåäœã§ããŸããã€ãŸãã次ã®ããã«ä»»æã®ããŒã«ä»»æã®ããŒã¿ãæžã蟌ãããšãã§ããŸãïŒsetValueïŒ_ïŒforKey :)ã

ãã®ã¡ãœããã¯ãã¹ãŠã®NSObjectãµãã¯ã©ã¹ã«ååšããŸãããä»ã®å€ãã®ãµãã¯ã©ã¹ãšã¯ç°ãªãããªãŒããŒã©ã€ããããŠããªãããŒãåä¿¡ããŠââãã¯ã©ãã·ã¥ããŸããã ãããŠåœŒã¯ãããæ£ããæžãçããããããç§ãã¡ã¯ãããèªãããšãã§ããŸãã ããã¯éåžžã«äŸ¿å©ãªããšã§ãCALayerã®ãµãã¯ã©ã¹ãäœæããããšãªããããã«ããŒã¿ãæžã蟌ãã§ãããããããèªã¿åã£ãŠãåç §ããããšãã§ããŸãã ããããããã¯éåžžã«åå§çãªåçŽãªãªããžããªã§ãããå®éã«ã¯1ã€ã®èŸæžã§ãã CALayerã¯ã¯ããã«é²æ©çã§ãã ã¹ã¿ã€ã«ããµããŒãããŸãã
ããã¯ãCALayerãæã€Styleããããã£ã«ãã£ãŠå®è£ ãããŸãã ããã©ã«ãã§ã¯ãnilã§ãããåå®çŸ©ããŠäœ¿çšã§ããŸãã

äžè¬ã«ãããã¯éåžžã®èŸæžã§ããããã以äžã§ã¯ãããŸããããNSObjectãæã€å¥ã®ã¡ãœããforKeyã®å€ãèŠæ±ãããšãCALayerãã©ã®ããã«åäœãããã«ã€ããŠã®ç¹æ§ããããŸãã éåžžã«èå³æ·±ãåäœãããã¹ã¿ã€ã«èŸæžã§å¿ èŠãªå€ãååž°çã«æ€çŽ¢ããŸãã ã¹ã¿ã€ã«ããŒã䜿çšããŠæ¢åã®ã¹ã¿ã€ã«ãæ°ããã¹ã¿ã€ã«ã«ããã¯ããããã«ããã€ãã®ããŒãæžã蟌ããšã次ã®ããã«ãªããŸãã

æåã«ã«ãŒãã確èªãã次ã«å éžãªã©ãæå³ãããããŸã§ç¢ºèªããŸãã ã¹ã¿ã€ã«ãnilã«ãªã£ãå Žåãããã«èŠãŠããæå³ã¯ãããŸããã
ãã®ããã«ãUIViewã¯ãCALayerãæäŸããã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšããŠãç¶æ å€æŽãæŽçããã¹ã¿ã€ã«ãã¹ã¿ãã¯ãã·ãã¥ã¬ãŒãã§ããéåžžã«åŒ·åãªãªããžããªããŸãã¯éåžžã«å¹ççã§éåžžã«äŸ¿å©ãªéåžžã®é£æ³é åã䜿çšããŠãå éšCALayerãªããžããªãæŽæ°ã§ããŸãã
ã¹ãã¬ãŒãžã§çµäºããCAActionã§éå§ããŸãã 圌ã«ã€ããŠããå°ã説æããŸãã

UIViewã«æ°ããã¿ã¹ã¯ããããŸã-CALayerã«ã¢ã¯ã·ã§ã³ãèŠæ±ããããã§ãã ã¢ã¯ã·ã§ã³ãšã¯äœã§ããïŒ

CAActionã¯ãå®è¡ã¡ãœããã1ã€ãããªããããã³ã«ã§ãã Appleã¯äžè¬çã«æ ç»ã®ããŒãã倧奜ãã§ãããã§ã®ã¢ã¯ã·ã§ã³ã¯ãã«ã¡ã©ãã¢ãŒã¿ãŒïŒãã§ãã ãã®ãã¢ãŒã¿ãŒãã¯åãªãã¢ã¯ã·ã§ã³ã§ããããã®ååã䜿çšãããã ãã§ã¯ãããŸããã runã¡ãœããã¯ãéå§ãå®è¡ãããã³çµäºã§ããã¢ã¯ã·ã§ã³ãéå§ããããšãæå³ããããã¯æãéèŠã§ãã ãã®ã¡ãœããã¯éåžžã«æ±çšçã§ãããã€ãã³ãæååã®ã¿ãæã¡ããã®ä»ã¯ãã¹ãŠä»»æã®ã¿ã€ãã«ã§ããŸãã ObjCã§ã¯ãããã¯ãã¹ãŠidã§ãããéåžžã®NSDictionaryã§ãã

UIKitã®å éšã«ã¯ãCAActionãããã³ã«ãæºããã¯ã©ã¹ããããŸãã æåã¯ã¢ãã¡ãŒã·ã§ã³ã§ãã ãŸããã¢ãã¡ãŒã·ã§ã³ãã¬ã€ã€ãŒã«è¿œå ã§ããããšãç¥ã£ãŠããŸãããããã¯éåžžã«äœã¬ãã«ã®ãã®ã§ãã ãã®äžã®é«ã¬ãã«ã®æœè±¡åã¯ãã¬ã€ã€ãŒã§å¿ èŠãªãã©ã¡ãŒã¿ãŒã䜿çšããŠã¢ã¯ã·ã§ã³ãå®è¡ããããšã§ãã
2çªç®ã®éèŠãªäŸå€ã¯NSNullã§ãã 圌ã¯ã©ã®ã¡ãœãããããåŒã³åºããªãããšãç¥ã£ãŠããŸãããCAActionãããã³ã«ãæºãããŸããããã¯ãã¬ã€ã€ãŒã§CAActionãç°¡åã«æ€çŽ¢ããããã«è¡ãããŸãã

åè¿°ããããã«ãUIViewã¯CALayerã®ããªã²ãŒãã§ãããããªã²ãŒãã¡ãœããã®1ã€ã¯ã¢ã¯ã·ã§ã³ã§ãïŒforïŒforKey :)ã ã¬ã€ã€ãŒã«ã¯ã¡ãœããforKeyããããŸãã

ã¬ã€ã€ãŒã§ãã€ã§ãåŒã³åºãããšãã§ãããã€ã§ãæ£ããã¢ã¯ã·ã§ã³ãŸãã¯nilãäžããããšãã§ããŸãã ã¢ã«ãŽãªãºã ã¯éåžžã«çããæ€çŽ¢ã§ãã æ¬äŒŒã³ãŒãã¯ããã«èšè¿°ãããŠããŸããè¡ãèŠãŠã¿ãŸãããã ãã®ãããªã¡ãã»ãŒãžãåä¿¡ãããšã圌ã¯æåã«ä»£ç人ãšçžè«ããŸãã ããªã²ãŒãã¯nilãè¿ãããšãã§ããŸããããã¯ãæ€çŽ¢ãä»ã®å Žæã§ç¶è¡ãããããšãæå³ããããæå¹ãªã¢ã¯ã·ã§ã³ïŒCAActionãããã³ã«ãæºããæå¹ãªãªããžã§ã¯ãïŒãè¿ãå ŽåããããŸãã ããããè«ççãªã«ãŒã«ããããŸãããã®ãããã³ã«ãæºããNSNullãè¿ãå ŽåãåŸã§nilã«å€æãããŸãã ã€ãŸããNullãè¿ãå Žåãå®éã«ã¯ãæ€çŽ¢ãåæ¢ãããããšãæå³ããŸãã ã¢ã¯ã·ã§ã³ã¯ãªããå¿ èŠãããŸããã
ãããã次ã®ããšããããŸãã 圌ã¯ä»£ç人ãšçžè«ãã代ç人ãnilãè¿ããåŸãæ€çŽ¢ãç¶ããŸãã ãŸããã¬ã€ã€ãŒãæã€ã¢ã¯ã·ã§ã³èŸæžã§ãã¹ã¿ã€ã«èŸæžãååž°çã«æ€çŽ¢ããŸããã¢ã¯ã·ã§ã³èŸæžã«ã¯å€ãã®ã¢ã¯ã·ã§ã³ãæžã蟌ãããšãã§ããã¢ã¯ã·ã§ã³ããŒãæã€èŸæžããããååž°çã«æ€çŽ¢ããããšãã§ããŸãã ãããããŸããããªãã£ãå Žåã圌ã¯ã¯ã©ã¹ã«ããã©ã«ãã®ã¢ã¯ã·ã§ã³forKeyã¡ãœãããèŠæ±ããŸããããã¯CALayerã«ãã£ãŠå®çŸ©ãããæè¿ãŸã§äœããè¿ããŠããŸããããæè¿ã®ææ°ããŒãžã§ã³ã®iOSã§ã¯åžžã«nilãè¿ããŸãã
çè«ãç解ããŸããã å®éã«ãã¹ãŠãã©ã®ããã«é©çšãããããèŠãŠã¿ãŸãããã
ã€ãã³ãããããããŒãããããããã®ã€ãã³ãã«å¯ŸããŠããã€ãã®ã¢ã¯ã·ã§ã³ãå®è¡ãããŸãã åºæ¬çã«ã2çš®é¡ã®ã€ãã³ããåºå¥ã§ããŸãã 1ã€ç®ã¯ãä¿åãããããããã£ã®ã¢ãã¡ãŒã·ã§ã³ã§ãã Viewcolorcolor = redãåŒã³åºããšãçè«çã«ã¢ãã¡ãŒã·ã§ã³åã§ãããšä»®å®ããŸãã

ãã¿ãŒã³ã®ãªããã¿ãŒã³ã«é¢ããã¬ããŒãã¯äœã§ããïŒ ã«ããã«ãæããŸããã UIViewã«ã¯ããµãã¯ã©ã¹çšã«å®çŸ©ããããçš®ã®ã€ã³ã¿ãŒãã§ã€ã¹ããŸãã¯ã€ãã³ãã§ã·ã¹ãã ããåä¿¡ããã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã UIViewã®ã¿ã¹ã¯ã¯ãç®çã®ã¢ã¯ã·ã§ã³ãèŠæ±ããå éšã¹ãã¢ãæŽæ°ããŠãçºçããã¢ã¯ã·ã§ã³ãèµ·åããããšã§ãã é åºã¯ããªã¯ãšã¹ãã«é¢ããŠéåžžã«éèŠã§ãïŒã¢ã¯ã·ã§ã³ãã¢ã¯ã·ã§ã³ã®æŽæ°ã®ã¿ãã¹ãã¢ãšã¢ã¯ã·ã§ã³ã®æŽæ°ã®ã¿ã

UIViewã§backgroundColorãæŽæ°ãããšã©ããªããŸããã UIViewã§ã¯ãç»é¢äžã®è¡šç€ºã«é¢é£ãããã¹ãŠã®ãã®ãCALayerã®ãããã·ã§ããããšãç¥ã£ãŠããŸãã 念ã®ãããååŸãããã¹ãŠããã£ãã·ã¥ããŸãããåæã«ãã¹ãŠãCALayerããããŒããã£ã¹ãããCALayerã§ããã«ãã¹ãŠã®ããžãã¯ãåŠçããŸãã ããã¯ã°ã©ãŠã³ããå€æŽããã¿ã¹ã¯ãåä¿¡ãããšãCALayerã®å éšã§äœãèµ·ãããŸããïŒ ããã§ã¯ãã¹ãŠãå°ãè€éã§ãã

æå§ãã«ã圌ã¯è¡åãæ±ããŸãã ãããŠãæåã«ã¢ã¯ã·ã§ã³ãèŠæ±ãããããšãç解ããããšãéèŠã§ãã ããã«ãããbackgroundColorãå«ãã¢ã¯ã·ã§ã³ã®äœææã«CALayerã«çŸåšã®å€ãåãåãããããšãã§ãããã®å Žåã®ã¿ã¹ãã¢ãæŽæ°ãããåä¿¡ããã¢ã¯ã·ã§ã³ãrunã³ãã³ããåä¿¡ãããšãCALayerã«åãåãããŠæ°ããå€ãååŸã§ããŸãã ãããã£ãŠã圌ã¯å€ããã®ãšæ°ãããã®ã®äž¡æ¹ãææããå¿ èŠã«å¿ããŠã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸãã
ããããUIViewã«ã¯1ã€ã®æ©èœããããŸããUIViewã§backgroundColorãå€æŽãããšãã¢ãã¡ãŒã·ã§ã³ãããã¯ã§ãããè¡ããšã¢ãã¡ãŒã·ã§ã³åãããã¢ãã¡ãŒã·ã§ã³ãããã¯å€ã«ããå Žåã¯ã¢ãã¡ãŒã·ã§ã³åãããŸããã

ãã¹ãŠãéåžžã«ç°¡åã§ãéæ³ã¯ãããŸããã ãã ããUIViewã¯CALayerã®ããªã²ãŒãã§ããããã®ãããªã¡ãœãããããããšãèŠããŠãããŠãã ããã ãã¹ãŠãéåžžã«ç°¡åã§ãã
ãã®ã¡ãœãããã¢ãã¡ãŒã·ã§ã³ãããã¯ã§å®è¡ãããå Žåãäœããã®ã¢ã¯ã·ã§ã³ãè¿ããŸãã ã¢ãã¡ãŒã·ã§ã³ãããã¯ã®å€åŽã«ããå Žåããã®ã¡ãœããã¯NSNullãè¿ããŸããã€ãŸããäœãã¢ãã¡ãŒã·ã§ã³åããå¿ èŠã¯ãããŸããã , CALayer .
, UIView , . . ?

, . UIView , read only, , inheritedAnimationDuration. . , . .
? duration, . , run, , .

, CAAction, backgroundcolor opacity, UIView . , , , , . . setValue forKey , , , , , , .
, , , , .
â . , «» «» . .
.

. , , , . UIView CALayer, , , CAAction, , , .


, , , . , . .
. - .
CAAction, , . , , , .

, , , home, . , . , .

. - .

, - , - . , , . , .
, , .

, CAAction , . , UIControl, - , - , , , - .
, . , UIView -, , - , , , .
â . .
? . , . â . activating, inactive active. , , .

. , onOrderIn onOrderOut. , UIKit, .
, -, â , .

. UIView , : isActive progress. . CAAction, .
, . , , 30 CAACtion, . , 30 , NSNull. 15 15 . . â . , â .
, . .
. , , : , -, .
, , . . , UIKit , . . , , , . ãæž èŽããããšãããããŸããã