Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
View²ãµÄ×éÖ¯ºÍµ÷Ó÷½°¸£¨ÉÏ£©
 
×÷ÕߣºÌïΰÓî À´Ô´£ºGitHud ·¢²¼ÓÚ£º 2015-6-5
  1914  次浏览      29
 

iOS¿Í»§¶ËÓ¦Óüܹ¹¿´ËƼòµ¥£¬µ«Êµ¼ÊÉÏÒª¿¼ÂǵÄÊÂÇé²»ÉÙ¡£±¾ÎÄ×÷Õß½«ÒÔϵÁÐÎÄÕµÄÐÎʽÀ´»Ø´ðiOSÓ¦Óüܹ¹ÖеÄÖÖÖÖÎÊÌ⣬±¾ÎÄÊÇÆäÖеĵڶþƪ£¬Ö÷Òª½²View²ãµÄ×éÖ¯ºÍµ÷Ó÷½°¸¡£ÉÏÆªÖ÷Òª½²View²ãµÄ´úÂë½á¹¹¡¢²¼¾Ö£¬ÒÔ¼°Ò»Ð©×î¼Ñʵ¼ùµÄÌÖÂÛ¡£

µ±ÎÒÃÇ¿ªÊ¼Éè¼ÆView²ãµÄ¼Ü¹¹Ê±£¬ÍùÍùÊÇÕâ¸öApp»¹Ã»ÓпªÊ¼¿ª·¢£¬»òÕßÕâ¸öAppÒѾ­·¢¹ý¼¸¸ö°æ±¾ÁË£¬È»ºó´ËʱÐèÒª×ö·Ç³£³¹µ×µÄÖØ¹¹¡£

Ò»°ãÒ²¾ÍÊÇÕâÁ½ÖÖʱ»ú»áÈ¥×öView²ã¼Ü¹¹£¬»ùÓÚÕâ¸öʱ»úµÄÌØÊâÐÔ£¬ÎÒÃÇÔÚ±ØÐëÇå³þÈÏʶµ½£ºView²ãµÄ¼Ü¹¹Ò»µ©ÊµÏÖ»ò¶¨ÐÍ£¬ÔÚApp·¢°æºó¿ÉÐ޸ĵÄÓàµØ¾ÍÒѾ­·Ç³£Ö®Ð¡ÁË¡£ÒòΪËü¸úÒµÎñ¹ØÁª×îΪ½ôÃÜ£¬ËùÒÔÄÄÅÂÉÔ΢¶¯Ò»µãµã£¬ËüËùÒý·¢µÄºûµûЧӦ¶¼²»¼ûµÃÊÇÒµÎñ·½Äܹ»holdסµÄ¡£ÕâÑùµÄÇé¿ö£¬¾ÍÒªÇóÎÒÃÇÔÚʵÏÖÕâ¸ö¼Ü¹¹Ê±£¬´úÂë±ØÐëµÃ¸ÄµÃÇڿ죬²»ÄÜ͵ÀÁ¡£Ò²±ØÐë±§×ųä·ÖµÄ×ÔÎÒ»³ÒÉ̬¶È£¬×ö¾ö²ßʱҪÄÃÄóºÃ³ß¶È¡£

View²ãµÄ¼Ü¹¹·Ç³£Ö®ÖØÒª£¬ÔÚÎÒ¿´À´£¬Õⲿ·Ö¼Ü¹¹ÊÇÕâϵÁÐÎÄÕÂÉæ¼°4¸ö·½Ãæ×îÖØÒªµÄÒ»²¿·Ö£¬Ã»ÓÐÖ®Ò»¡£ÎªÊ²Ã´Õâô˵£¿

View²ã¼Ü¹¹ÊÇÓ°ÏìÒµÎñ·½µü´úÖÜÆÚµÄÒòËØÖ®Ò»

²úÆ·¾­Àí²úÉúÐèÇóµÄËÙ¶È»á·Ç³£¿ì£¬ÓÈÆäÊǹ«Ë¾´ËʱÈÔ´¦ÓÚ´´Òµ³õÆÚ£¬ÔÚ¹æÄ£ÉÔ´óµÄ¹«Ë¾ÀïÃæ£¬²úÆ·¾­ÀíҲϲ»¶ÍÚ´ó¿ÓÀ´ÔÚleaderÃæÇ°Ë¢´æÔڸС£Õâ¾Íµ¼ÖÂÒµÎñ¹¤³ÌʦÈÎÎñ·Ç³£·±ÖØ¡£Õý³£Çé¿öÏÂÈòúÆ·¾­Àí¿³ÐèÇóÊDz»Ì«¿ÉÄܵģ¬Òò´Ë×÷Ϊ¼Ü¹¹Ê¦£¬Ôڼܹ¹ÀïÓÐһЩ¿É×ö¿É²»×öµÄÊÂÇ飬×îºÃ»¹ÊÇÄÜ×ö¾Í×öµô£¬²»ÒªÍµÀÁ¡£Õâ¿ÉÒÔ°ïÒµÎñ·½¼õ¸º£¬±àд´úÂëµÄʱºòÒ²Äܸü¼Ó¹Ø×¢ÒµÎñ¡£

ÎÒ¸úһЩÅóÓѽ»Á÷µÄʱºò£¬ËûÃǶ¼»á»ò¶à»òÉٵر§Ô¹×Ô¼ºµÄÍŶӵü´úËٶȲ»¹»¿ì£¬»òÕß˵£¬µü´úËٶȲ»ºÏÀíµØÂý¡£ÎÒÈÏΪµü´úËٶȲ»ÊÇÏëÌá¾ÍÄÜÌáµÄ£¬µü´úËٶȵÄÓ°ÏìÒòËØÓкܶ࣬һÆÚPRDÀïµÄÈÎÎñÁ¿ºÍÈÎÎñ¸´ÔӶȶ¼»áÓ°Ïìµü´úÖÜÆÚÄܴﵽʲôÑùµÄ³Ì¶È¡£Å׿ªÕâЩÍâÔڵIJ»Ì¸£¬´ÓÄÚÔÚÔ­ÒòÀ´¿´£¬ÆäÖÐÓÐÒ»¸ö¿ÉÄܾÍÊÇView²ã¼Ü¹¹Ã»ÓÐ×öºÃ£¬ÈÃÒµÎñ¹¤³ÌʦÍê³ÉÒ»¸ö²»Ë㸴ÔÓµÄÐèÇóʱ£¬ÐèÒª´¦ÀíÌ«¶à¶îÍâµÄÊÂÇé¡£µ±È»£¬¿ª»á¶à£¬¹¤³ÌʦˮƽÀÃÒ²ÊôÓÚµü´úËÙ¶ÈÌá²»ÉÏÈ¥µÄÄÚ²¿Ô­Òò£¬µ«Õâ¸ö²»ÊôÓÚ±¾ÎÄÌÖÂÛ·¶Î§¡£»¹ÓУ¬¼Ó°à²»ÊÇÓÅ»¯µü´úÖÜÆÚµÄÕýÈ··½Ê½£¬àÅ¡£

Ò»°ãÀ´Ëµ£¬Ò»¸ö²»¹»ºÃµÄView²ã¼Ü¹¹£¬Ö÷ÒªÔ­ÒòÓÐÒÔÏÂÎåÖÖ£º

1.´úÂë»ìÂÒ²»¹æ·¶

2.¹ý¶à¼Ì³Ðµ¼Öµĸ´ÔÓÒÀÀµ¹ØÏµ

3.Ä£¿é»¯³Ì¶È²»¹»¸ß£¬×é¼þÁ£¶È²»¹»Ï¸

4.ºáÏòÒÀÀµ

5.¼Ü¹¹Éè¼ÆÊ§È¥´«³Ð

ÕâÎå¸öµØ·½»áÓ°ÏìÒµÎñ¹¤³ÌʦʵÏÖÐèÇóµÄЧÂÊ£¬½ø¶øÍÏÂýµü´úÖÜÆÚ¡£View¼Ü¹¹µÄÆäËûȱÏÝÒ²»á»ò¶à»òÉٵزúÉúÓ°Ï죬µ«ÔÚÎÒ¿´À´ÕâÎå¸öÊDZȽÏÖØÒªµÄÓ°ÏìÒòËØ¡£

¶ÔÓÚµÚÎåµãÎÒÏë×öÒ»ÏÂÇ¿µ÷£º¼Ü¹¹µÄÉè¼ÆÊÇÒ»¶¨ÐèÒªÓд«³ÐµÄ£¬Óд«³ÐµÄ¼Ü¹¹´ÓÕûÌåÉÏ¿´»á·Ç³£Ð­µ÷¡£µ«Êµ¼ÊÇé¿öÓпÉÄÜÊÇÒ»¸öÈË×ßÁË£¬ÁíÒ»¸ö¶¥ÉÏ£¬¼´±ãÈÎÎñ½»½ÓµÃÔÙÍêÕû£¬¶¼²»¿É±ÜÃⲻͬµÄÈËÓв»Í¬µÄ¼Ü¹¹Ë¼Â·£¬´Ó¶øµ¼ÖÂÕû¸ö¼Ü¹¹µÄÁ÷³©³Ì¶ÈÊܵ½Ó°Ïì¡£Òª½â¾öÕâ¸öÎÊÌ⣬һ·½ÃæÒª¾¡Á¿±ÜÃâµ¥µãÎÊÌ⣬Èüܹ¹Ê¦×ö¼Ü¹¹µÄʱºòÔÙ´øÒ»¸öÈË¡£ÁíÒ»·½Ã棬¼Ü¹¹ÒªÉè¼ÆµÃ¾¡Á¿¼òµ¥£¬Æ½»º½ÓÊÖÈ˵ÄѧϰÇúÏß¡£ÎÒÀ뿪°²¾Ó¿ÍµÄʱºò£¬×ö¹ý±£Ö¤£º·²ÊÇ´ÓÎÒÊÖÀï³öÀ´µÄ´úÂ룬ÖÕÉí±£ÐÞ¡£ËùÒÔ²»ÒªÏë×ÅÀëÖ°Á˾Íʲôʶù¶¼²»¹ÜÁË£¬Õâ²»¹âÊÇÖ°ÒµËØÑøÎÊÌ⣬»¹ÓÐÒ»¸öÊÇÄã¶ÔÄãµÄ´úÂëÊÇ·ñ×ã¹»×ÔÐŵÄÎÊÌâ¡£´«³ÐÐÔ¶ÔÓÚView²ã¼Ü¹¹·Ç³£ÖØÒª£¬ÒòΪËü¾àÀëÒµÎñ×î½ü£¬¸Ä¶¯ÓàµØ×îС¡£

ËùÒÔµ±¸÷λCTO¡¢¼¼Êõ×ܼࡢTeamLeaderÃǾõµÃµü´úÖÜÆÚ²»¹»¿ìʱ£¬Äã¿ÉÒÔÏȲ»Ã¦×ż±ºðºðµØÈ¥ÕÐÐÂÈË£¬¡¶ÈËÔÂÉñ»°¡·Ôç¾Í˵¹ý¼ÓÈ˲»ÄÜÍêÈ«½â¾öÎÊÌâ¡£ÕâʱºòÈç¹ûÄã¿ÉÒԻعýÍ·À´¿´Ò»ÏÂÊDz»ÊÇView²ã¼Ü¹¹²»ºÏÀí£¬°ÑÕâ¸öŪºÃÒ²ÊÇÓÅ»¯µü´úÖÜÆÚµÄÊÖ¶ÎÖ®Ò»¡£

àÅ£¬ÖÁÓÚ±¾ÏµÁÐÆäËûÈýÏîµÄ¼Ü¹¹·½°¸¶ÔÓÚµü´úÖÜÆÚµÄÓ°Ïì³Ì¶È£¬ÎÒÈÏΪ¶¼²»ÈçView²ã¼Ü¹¹·½°¸¶Ôµü´úÖÜÆÚµÄÓ°Ïì¸ß£¬ËùÒÔÕâÊÇÎÒÈÏΪView²ã¼Ü¹¹ÊÇ×îÖØÒªµÄÆäÖÐÒ»¸öÀíÓÉ¡£

View²ã¼Ü¹¹ÊÇ×îÌù½üÒµÎñµÄµ×²ã¼Ü¹¹

View²ã¼Ü¹¹ËäȻҲËãµ×²ã£¬µ«»¹Ã»ÄÇôµ×²ã£¬Ëü¸úÒµÎñµÄ¶Ô½ÓÃæ×î¹ã£¬Ó°ÏìÒµÎñ²ã´úÂëµÄ³Ì¶ÈÒ²×îÉî¡£ÔÚËùÓеĵײ㶼ǣһ·¢µÄʱºò£¬ÔÚView¼Ü¹¹ÉÏÇ£Ò»·¢µ¼ÖÂÒµÎñ²ã¶¯È«ÉíµÄÃæ»ý×î´ó¡£

ËùÒÔView¼Ü¹¹ÔÚËùÓмܹ¹ÖÐÒ»µ©¶¨ÐÍ£¬¿ÉÐ޸ĵĿռä¾Í×îС£¬ÎÒÃÇÔÚÒ»¿ªÊ¼¿¼ÂÇViewÏà¹Ø¼Ü¹¹Ê±£¬²»¹âҪʵÏÖ¹¦ÄÜ£¬»¹Òª¿¼ÂǸü¶à¹æ·¶ÉϵĶ«Î÷¡£Öƶ¨¹æ·¶µÄÄ¿µÄÒ»·½ÃæÊÇ·ÀÖ¹ÒµÎñ¹¤³ÌʦµÄ´úÂ븯ʴView¼Ü¹¹£¬ÁíÒ»·½ÃæÒ²ÊÇΪÁËÄܹ»ÓÐËù´«³Ð¡£°´Õչ淶À´£¬×Ü»¹ÊDz»ÄÇôÈÝÒ׳ö²î³ØµÄ¡£

»¹ÓоÍÊÇ£¬¼Ü¹¹Ê¦Ò»¿ªÊ¼¿¼ÂǵĶ«Î÷Ò²»áÓкܶ࣬²»¿ÉÄÜÔÚµÚÒ»°æ¾Í°ÑËüÃÇÈ«²¿ÊµÏÖ£¬¶ÔÓÚÒ»¸öÉÐδ·¢°æµÄAppÀ´Ëµ£¬µÚÒ»°æ¼Ü¹¹ÍùÍùÊÇ×îСÍêÕû¹¦Äܼ¯£¬ÄÇôÔÚµÚ¶þ°æµÚÈý°æµÄ·¢Õ¹¹ý³ÌÖУ¬¼Ü¹¹µÄµü´úÈÎÎñ¾ÍºÜÓпÉÄܲ»Ö»ÊÇÄãÒ»¸öÈ˵ÄÊÂÇéÁË£¬ÏàÐÅÄãÒ»¸öÈËÒ²²»¼ûµÃÄܸ㶨ȫ²¿¡£ËùÒÔÄãÒª¸úÄãµÄºÏ×÷ÕßÃÇÓÐËùÔ¼¶¨¡£ÁíÍ⣬µÚÒ»°æ³öÈ¥Ö®ºó£¬ÒµÎñ¹¤³ÌʦÔÚʹÓùý³ÌÖÐÒ²»á²úÉúºÜ¶àÐÞ¸ÄÒâ¼û£¬ÄÄЩÒâ¼ûÊǺÏÀíµÄ£¬ÄÄЩÒâ¼ûÊDz»ºÏÀíµÄ£¬Ò²ÒªÍ¨¹ýÊÂÏÈÔ¼¶¨µÄ¹æ·¶À´½øÐÐɸѡ£¬×îÖÕ¾ö¶¨ÈçºÎ²ÉÄÉ¡£

¹æ·¶Ò²²»ÊÇÒ»³É²»±äµÄ£¬Ê²Ã´Ê±ºòǹ±ÐÒâ¼û£¬Ê²Ã´Ê±ºò¸Ä¹æ·¶£¬Õâ¾ÍÒª¿¿¸÷λµÄ¼¼ÊõºÍ¾­ÑéÁË¡£

View´úÂë½á¹¹µÄ¹æ¶¨

¼Ü¹¹Ê¦²»ÊÇдSDK³öÀ´½»¸¶ÒµÎñ·½Ê¹ÓþÍûʶùÁ˵ģ¬Ã¿¼Ò¹«Ë¾Ò»¶¨¶¼ÓÐÒ»Ì×´úÂë¹æ·¶£¬¼Ü¹¹Ê¦µÄÖ°ÔðÒ²°üÀ¨¶¨Òå´úÂë¹æ·¶¡£°´ÕÕµÀÀíÀ´½²£¬¶¨´úÂë¹æ·¶Ó¦¸ÃÊÇÊôÓÚͨʶ£¬·ÅÔÚÕâÀï½²µÄÔ­ÒòÖ»ÊÇÒòΪÎÒÕâ±ßÐèҪΪViewÌí¼ÓÒ»¸ö¹æ·¶¡£

ÖÆ¶¨´úÂë¹æ·¶ÑϸñÀ´½²²»ÊôÓÚView²ã¼Ü¹¹µÄÊÂÇ飬µ«Ëü¶ÔView²ã¼Ü¹¹Î´À´µÄÓ°Ïì»á±È½Ï´ó£¬Ò²ÊÇÊôÓڼܹ¹Ê¦ÔÚÉè¼ÆView²ã¼Ü¹¹Ê±ÐèÒª¿¼ÂǵÄÊÂÇé¡£ÖÆ¶¨View²ã¹æ·¶µÄÖØÒªÐÔÔÚÓÚ£º

1.Ìá¸ßÒµÎñ·½View²ãµÄ¿É¶ÁÐÔ¿Éά»¤ÐÔ

2.·ÀÖ¹ÒµÎñ´úÂë¶Ô¼Ü¹¹²úÉú¸¯Ê´

3.È·±£´«³Ð

4.±£³Ö¼Ü¹¹·¢Õ¹µÄ·½Ïò²»ÇáÒ×±»²»ºÏÀíµÄÒâ¼ûËù×óÓÒ

ÔÚÕâÒ»½ÚÀïÃæÎÒ²»´òËã´ÓÍ·¿ªÊ¼¶¨ÒåÒ»Ì׹淶£¬Æ»¹ûÓÐÒ»Ì×Coding Guidelines£¬µ±ÎÒÃǶ¨´úÂë½á¹¹»ò¹æ·¶µÄʱºò£¬Ê×ÏÈÒ»¶¨Òª·ûºÏÕâ¸ö¹æ·¶¡£

È»ºó£¬ÏàÐÅ´ó¼Ò¸÷×Ô¹«Ë¾ÀïÃæÒ²¶¼ÓÐÒ»Ì××Ô¼ºµÄ¹æ·¶£¬¾ßÌåÔõô¸ö¹æ·¶·¨ÆäʵҲÊǸù¾Ý¸÷λ¼Ü¹¹Ê¦µÄ¾­Ñé¶ø¶¨£¬ÎÒÕâ±ßÖ»Êǽ¨Òé¸÷λÔÚ¸÷×Թ淶µÄ»ù´¡ÉÏÔÙ¼ÓÉÏÏÂÃæÕâÒ»µã¡£

viewControllerµÄ´úÂëÓ¦¸Ã²î²»¶àÊÇÕâÑù£º

ÒªµãÈçÏ£º

ËùÓеÄÊôÐÔ¶¼Ê¹ÓÃgetterºÍsetter

²»ÒªÔÚviewDidLoadÀïÃæ³õʼ»¯ÄãµÄviewÈ»ºóÔÙadd£¬ÕâÑù´úÂë¾ÍºÜÄÑ¿´¡£ÔÚviewDidloadÀïÃæÖ»×öaddSubviewµÄÊÂÇ飬ȻºóÔÚviewWillAppearÀïÃæ×ö²¼¾ÖµÄÊÂÇ飨ÕâÀïÔÚ×îºó»¹»áÌÖÂÛ£©£¬×îºóÔÚviewDidAppearÀïÃæ×öNotificationµÄ¼àÌýÖ®ÀàµÄÊÂÇé¡£ÖÁÓÚÊôÐԵijõʼ»¯£¬Ôò½»¸øgetterÈ¥×ö¡£

±ÈÈçÕâÑù£º

#pragma mark - life cycle
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.firstTableView];
[self.view addSubview:self.secondTableView];
[self.view addSubview:self.firstFilterLabel];
[self.view addSubview:self.secondFilterLabel];
[self.view addSubview:self.cleanButton];
[self.view addSubview:self.originImageView];
[self.view addSubview:self.processedImageView];
[self.view addSubview:self.activityIndicator];
[self.view addSubview:self.takeImageButton];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CGFloat width = (self.view.width - 30) / 2.0f;
self.originImageView.size = CGSizeMake(width, width);
[self.originImageView topInContainer:70 shouldResize:NO];
[self.originImageView leftInContainer:10 shouldResize:NO];
self.processedImageView.size = CGSizeMake(width, width);
[self.processedImageView right:10 FromView:self.originImageView];
[self.processedImageView topEqualToView:self.originImageView];
CGFloat labelWidth = self.view.width - 100;
self.firstFilterLabel.size = CGSizeMake(labelWidth, 20);
[self.firstFilterLabel leftInContainer:10 shouldResize:NO];
[self.firstFilterLabel top:10 FromView:self.originImageView];
... ...
}

ÕâÑù¼´±ãÔÚÊôÐԷdz£¶àµÄÇé¿öÏ£¬»¹ÊÇÄܹ»±£³Ö´úÂëÕûÆë£¬viewµÄ³õʼ»¯¶¼½»¸øgetterÈ¥×öÁË¡£×ÜÖ®¾ÍÊǾ¡Á¿²»Òª³öÏÖÒÔϵÄÇé¿ö£º

- (void)viewDidLoad
{
[super viewDidLoad];
self.textLabel = [[UILabel alloc] init];
self.textLabel.textColor = [UIColor blackColor];
self.textLabel ... ...
self.textLabel ... ...
self.textLabel ... ...
[self.view addSubview:self.textLabel];
}

ÕâÖÖ×ö·¨¾Í²»¹»¸É¾»£¬¶¼ÈÓµ½getterÀïÃæÈ¥¾ÍºÃÁË¡£¹ØÓÚÕâ¸ö×ö·¨£¬ÔÚÌÆÇɵļ¼Êõ²©¿ÍÀïÃæÓÐһƪÎÄÕºÍÎÒËùÌᳫµÄ×ö·¨²»Í¬£¬Õâ¸öÎÒ»á·ÅÔÚºóÃæÏêϸÂÛÊö¡£

getterºÍsetterÈ«²¿¶¼·ÅÔÚ×îºó

ÒòΪһ¸öViewControllerºÜÓпÉÄÜ»áÓзdz£¶àµÄview£¬¾ÍÏñÉÏÃæ¸ø³öµÄ´úÂëÑùÀýÒ»Ñù£¬Èç¹ûgetterºÍsetterдÔÚÇ°Ãæ£¬¾Í»á°ÑÖ÷ÒªÂß¼­³¶µ½ºóÃæÈ¥£¬ÆäËûÈË¿´µÄʱºò¾ÍÒªÏÈ»®¹ýÒ»³¤´®getterºÍsetter£¬ÕâÑù²»Ì«ºÃ¡£È»ºóÒªÇóÒµÎñ¹¤³Ìʦд´úÂëµÄʱºò°´ÕÕ˳ÐòÀ´·ÖÅä´úÂë¿éµÄλÖã¬ÏÈÊÇlife cycle£¬È»ºóÊÇDelegate·½·¨ÊµÏÖ£¬È»ºóÊÇevent response£¬È»ºó²ÅÊÇgetters and setters¡£ÕâÑùºóÀ´ÕßÔĶÁ´úÂëʱ¾ÍÄÜÊ¡Á¦ºÜ¶à¡£

ÿһ¸ödelegate¶¼°Ñ¶ÔÓ¦µÄprotocolÃû×Ö´øÉÏ£¬delegate·½·¨²»Òªµ½´¦ÂÒд£¬Ð´µ½Ò»¿éÇøÓòÀïÃæÈ¥

±ÈÈçUITableViewDelegateµÄ·½·¨¼¯¾ÍÀÏÀÏʵʵдÉÏ#pragma mark - UITableViewDelegate¡£ÕâÑùÓиöºÃ´¦¾ÍÊÇ£¬µ±ÆäËûÈËÔĶÁÒ»¸öËû²¢²»ÊìϤµÄDelegateʵÏÖ·½·¨Ê±£¬ËûÖ»Òª°´×¡commandÈ»ºóÈ¥µãÕâ¸öprotocolÃû×Ö£¬Xcode¾ÍÄܹ»Á¢¿ÌÌø×ªµ½¶ÔÓ¦Õâ¸öDelegateµÄprotocol¶¨ÒåµÄÄDz¿·Ö´úÂëÈ¥£¬¾ÍÊ¡µÃËûµ½´¦ÕÒÁË¡£

event responseרÃÅ¿ªÒ»¸ö´úÂëÇøÓò

ËùÓÐbutton¡¢gestureRecognizerµÄÏìӦʼþ¶¼·ÅÔÚÕâ¸öÇøÓòÀïÃæ£¬²»Òªµ½´¦ÂÒ·Å¡£

¹ØÓÚprivate methods£¬Õý³£Çé¿öÏÂViewControllerÀïÃæ²»Ó¦¸Ãд

²»ÊÇdelegate·½·¨µÄ£¬²»ÊÇevent response·½·¨µÄ£¬²»ÊÇlife cycle·½·¨µÄ£¬¾ÍÊÇprivate methodÁË¡£¶ÔµÄ£¬Õý³£Çé¿öÏÂViewControllerÀïÃæÒ»°ãÊDz»»á´æÔÚprivate methodsµÄ£¬Õâ¸öprivate methodsÒ»°ãÊÇÓÃÓÚÈÕÆÚ»»Ë㡢ͼƬ²Ã¼ôɶµÄÕâÖÖС¹¦ÄÜ¡£ÕâÖÖС¹¦ÄÜҪô°ÑËüд³ÉÒ»¸öcategory£¬ÒªÃ´°ÑËû×ö³ÉÒ»¸öÄ£¿é£¬ÄÄÅÂÕâ¸öÄ£¿éÖ»ÓÐÒ»¸öº¯ÊýÒ²ÐС£

ViewController»ù±¾ÉÏÊǴ󲿷ÖÒµÎñµÄÔØÌ壬±¾Éí´úÂëÒѾ­Ï൱¸´ÔÓ£¬ËùÒÔ¸úÒµÎñ¹ØÁª²»´óµÄ¶«Î÷Äܲ»·ÅÔÚViewControllerÀïÃæ¾Í²»Òª·Å¡£ÁíÍâÒ»µã£¬Õâ¸öprivate methodµÄ¹¦ÄÜÕâʱºòÖ»ÊÇÄãÓõõ½£¬µ«Êǽ«À´Ëµ²»¶¨±ðµÄµØ·½Ò²»áÓõ½£¬Ò»¿ªÊ¼¾Í¶ÀÁ¢³öÀ´£¬ÓÐÀûÓÚ½«À´µÄ´úÂ븴Óá£

ΪʲôҪÕâÑùÒªÇó£¿

ÎÒ¼û¹ýÎÞÊýViewController£¬´úÂë²¼¾ÖÂÒµÃÒ»ËúºýÍ¿£¬ÕâÀïÒ»¸ödelegateÄÇÀïÒ»¸ögetter£¬È»ºóViewControllerµÄ´úÂëÒ»°ã¶¼ËÀ³¤ËÀ³¤µÄ£¬¿´Á˾ÍÈÃÈËÍ·ÌÛ¡£

¶¨ÒåºÃÕâ¸ö¹æ·¶£¬¾ÍÄÜʹµÃViewControllerÌõÀíÇåÎú£¬ÒµÎñ·½³ÌÐòÔ±ºÜÄܹ»Çø·ÖÄÄЩ·ÅÔÚViewControllerÀïÃæ±È½ÏºÏÊÊ£¬ÄÄЩ²»ºÏÊÊ¡£ÁíÍ⣬Ҳ¿ÉÒÔÌá¸ß´úÂëµÄ¿Éά»¤ÐԺͿɶÁÐÔ¡£

¹ØÓÚViewµÄ²¼¾Ö

ÒµÎñ¹¤³ÌʦÔÚдViewµÄʱºòÒ»¶¨ÌÓ²»µôµÄ¾ÍÊÇÕâ¸öÃüÌâ¡£ÓÃFrameÒ²ºÃÓÃAutolayoutÒ²ºÃ£¬Èç¹ûûÓо«ÐÄÉè¼Æ¹ý£¬²¼¾Ö²¿·ÖÒ»¶¨²Ò²»È̶á£

Ö±½ÓʹÓÃCGRectMakeµÄ»°¿É¶ÁÐԺܲ¹â¿´ÄǼ¸¸öÊý×Ö£¬Ò²ÎÞ·¨ÖªµÀviewºÍviewÖ®¼äµÄλÖùØÏµ¡£ÓÃAutolayout¿É¶ÁÐÔÉÔ΢ºÃµã¶ù£¬µ«Éú³ÉConstraintµÄ³¤¶ÈʵÔÚÌ«³¤£¬´úÂë¹Û¸Ð²»Ì«ºÃ¡£

AutolayoutÕâ±ß¿ÉÒÔ¿¼ÂÇʹÓÃMasonry£¬´úÂëµÄ¿É¶ÁÐÔ¾ÍÄܺúܶࡣÈç¹û»¹ÓÐʹÓÃFrameµÄ£¬¿ÉÒÔ¿¼ÂÇÒ»ÏÂʹÓÃÕâ¸öÏîÄ¿¡£

Õâ¸öÏîÄ¿ÀïÃæÌṩÁËFrameÏà¹ØµÄ·½±ã·½·¨(UIView+LayoutMethods)£¬ÀïÃæµÄ·½·¨Ò²»ù±¾º­¸ÇÁËËùÓв¼¾ÖµÄÐèÇ󣬿ɶÁÐԷdz£ºÃ£¬Ê¹ÓÃËüÖ®ºó»ù±¾¿ÉÒÔºÍCGRectMake˵ÔÙ¼ûÁË¡£ÒòΪÌìèÔÚ×î½ü²ÅÇл»µ½Ö§³ÖiOS6£¬ËùÒÔ֮ǰÌìè¶¼ÊÇÓÃFrame²¼¾ÖµÄ£¬ÔÚÌìèAppÖУ¬Ê×Ò³£¬·¶¶ù²¿·ÖÒ³ÃæµÄ²¼¾Ö¾ÍʹÓÃÁËÕâЩ·½·¨¡£Ê¹ÓÃÕâЩ·½±ã·½·¨ÄÜÆðµ½Ê°빦±¶µÄЧ¹û¡£

Õâ¸öÏîĿҲÌṩÁËAutolayout·½°¸ÏÂÉú²úConstraintsµÄ·½±ã·½·¨(UIView+AEBHandyAutoLayout)£¬¿É¶ÁÐÔ±ÈÔ­ÉúºÃºÜ¶à¡£ÎÒµ±Ê±ÔÚдÕâϵÁз½·¨µÄʱºò»¹²»ÖªµÀÓÐMasonry¡£ÖªµÀÓÐMasonryÖ®ºóÎÒÌØµØÈ¥¿´ÁËһϣ¬·¢ÏÖMasonry¹¦ÄܹûȻǿ´ó¡£²»¹ýÕâϵÁз½·¨ËäȻûÓÐMasonryÄÇôǿ´ó£¬µ«ÊÇÒ²¹»ÓÃÁË¡£µ±Ê±°²¾Ó¿ÍiPad°æAppÈ«²¿¶¼ÊÇAutolayoutÀ´×öµÄView²¼¾Ö£¬¾ÍÊÇʹÓõÄÕâ¸öÏîÄ¿ÀïÃæµÄ·½·¨¡£¿É¶ÁÐԺܺá£

ÈÃÒµÎñ¹¤³ÌʦʹÓÃÁ¼ºÃµÄ¹¤¾ßÀ´×öViewµÄ²¼¾Ö£¬ÄÜÌá¸ßËûÃǵŤ×÷ЧÂÊ£¬Ò²ÄܼõÉÙbug·¢ÉúµÄ¼¸ÂÊ¡£¼Ü¹¹Ê¦²»¹âÒª¹ØÐÄÄÇЩ¸ß´óÉϵÄÄÚÈÝ£¬Ò²Òª¶à¸øÒµÎñ¹¤³ÌʦÌṩ·½±ãÒ×ÓõÄС¹¤¾ß£¬²ÅÄÜ·¢»Ó¼Ü¹¹Ê¦µÄ¼ÛÖµ¡£

ºÎʱʹÓÃstoryboard£¬ºÎʱʹÓÃnib£¬ºÎʱʹÓôúÂëдView

Õâ¸öÎÊÌâÌÆÇɵIJ©¿ÍÀïÕâÆªÎÄÕÂÒ²Ìáµ½¹ý£¬ÎÒµÄÒâ¼ûºÍËûÊÇ»ù±¾Ò»Öµġ£

ÔÚÕâÀïÎÒ»¹Ïë²¹³äһЩÄÚÈÝ£º

¾ßÓÐÒ»¶¨¹æÄ£µÄÍŶӻ¯iOS¿ª·¢£¨10ÈËÒÔÉÏ£©ÓÐÒÔϼ¸¸öÌØµã£º

1.ͬһ·Ý´úÂëÎļþµÄ×÷Õß»áÓкܶ࣬²»Í¬×÷ÕßͬʱÐÞ¸Äͬһ·Ý´úÂëµÄÇé¿öÒ²²»ÉÙ¼û¡£Òò´Ë£¬Ê¹ÓÃGit½øÐдúÂë°æ±¾¹ÜÀíʱ³öÏÖConflictµÄ¼¸ÂÊÒ²±È½Ï´ó¡£

2.ÐèÇó±ä»¯·Ç³£Æµ·±£¬²úÆ·¾­Àíһʱһ¸öÖ÷Ò⣬ΪÁËÍê³ÉÐèÇó¶øÕë¶ÔÏÖÓдúÂë½øÐÐ΢µ÷µÄÇé¿ö£¬ÒÔ¼°Õë¶ÔÏÖÓдúÂëµÄ²¿·Ö¸´ÓõÄÇé¿öÒ²±È½Ï¶à¡£
¸´ÔÓ½çÃæÔªËØ¡¢¸´ÔÓ¶¯»­³¡¾°µÄ¿ª·¢ÈÎÎñ±È½Ï¶à¡£

3.Èç¹ûÕâÈý¸öÌØµãÄãÒ»¿´¾ÍÃ÷°×ÁË£¬ÏÂÃæµÄ½âÊ;ͿÉÒÔ²»Óÿ´ÁË¡£Èç¹ûÄãÕë¶ÔÎÒµÄÇãÏòÔ¸Òâ½øÒ»²½ÌÖÂ۵ģ¬¿ÉÒÔÏÈ¿´ÎÒÏÂÃæµÄ½âÊÍ£¬¿´ÍêÔÙ˵¡£

ͬһ·Ý´úÂëÎļþµÄ×÷Õß»áÓкܶ࣬²»Í¬×÷ÕßͬʱÐÞ¸Äͬһ·Ý´úÂëµÄÇé¿öÒ²²»ÉÙ¼û¡£Òò´Ë£¬Ê¹ÓÃGit½øÐдúÂë°æ±¾¹ÜÀíʱ³öÏÖConflictµÄ¼¸ÂÊÒ²±È½Ï´ó¡£

iOS¿ª·¢¹ý³ÌÖУ¬»áÓöµ½×îµ°ÌÛµÄÁ½ÖÖConflictÒ»¸öÊÇproject.pbxproj£¬ÁíÍâÒ»¸ö¾ÍÊÇStoryBoard»òXIB¡£ÒòΪÕâЩÎļþµÄÄÚÈݵĿɶÁÐԷdz£²î£¬ËäȻƻ¹ûÔÚXCode5£¨ÏÖÔÚÎÒÓе㲻ȷ¶¨ÊDz»ÊÇÕâ¸ö°æ±¾ÁË£©ÖжÔStoryBoardµÄÎļþÃèÊö·½Ê½×öÁËÒ»¶¨µÄÓÅ»¯£¬µ«Ö»ÊǰѿɶÁÐԴӷdz£²îÌáÉýΪºÜ²î¡£

È»¶øÔÚStoryBoardÖÐÍùÍù°üº¬Á˶à¸öÒ³Ãæ£¬ÕâÐ©Ò³Ãæ»ù±¾Éϲ»Ì«¿ÉÄܶ¼ÓÉÒ»¸öÈËÈ¥Íê³É£¬Èç¹ûÁíÒ»¸öÈËÔÚ×öStoryBoardµÄ²Ù×÷µÄʱºò£¬³öÓÚijЩĿµÄ¶¯ÁËһϲ»ÊôÓÚËûµÄÄǸöÒ³Ãæ£¬±ÈÈçΪÁËÃÀ¹Ûµ÷ÕûÁËÒ»ÏÂλÖá£È»ºóÁíÍâÒ»¸öÈËÒ²ÒòΪҪÌí¼ÓÒ»¸öÒ³Ãæ£¬¶øÔÚStoryboardÖе÷ÕûÁËÒ»ÏÂij¸öÆäËûÒ³ÃæµÄλÖá£ÄÇôÕë¶ÔÕâ¸öÇé¿öÎÒ³ýÁË˵¸öºÇºÇÒÔÍ⣬ÎÒ¾ÍÖ»ÄÜ˵£º×£ÄãºÃÔË¡£¿´Çå³þŶ£¬Õ⻹û¶¯¾ßÌåµÄÒ³Ò³ÃæÄÚÈÝÄØ¡£

µ«Èç¹ûʹÓôúÂë»æÖÆView£¬ConflictÒ»Ñù»á·¢Éú£¬µ«ÊÇÕâÖÖConflict¾ÍºÃ½âºÜ¶àÁË£¬Äã¶®µÄ¡£

ÐèÇó±ä»¯·Ç³£Æµ·±£¬²úÆ·¾­Àíһʱһ¸öÖ÷Ò⣬ΪÁËÍê³ÉÐèÇó¶øÕë¶ÔÏÖÓдúÂë½øÐÐ΢µ÷µÄÇé¿ö£¬ÒÔ¼°Õë¶ÔÏÖÓдúÂëµÄ²¿·Ö¸´ÓõÄÇé¿öÒ²±È½Ï¶à¡£

ÎÒ¾õµÃ²úÆ·¾­Àíһʱһ¸öÖ÷Òâ²»ÊÇËûµÄ´í£¬Ëû˵²»¶¨Ò²ÊDZ»±ÆµÄ£¬±ÈÈçË­¶¼»áÀ´²ôºÍһϲúÆ·µÄÉè¼Æ£¬¹«Ë¾ÀïµÄËùÓÐÈË£¬ÉÏÖÁCEO£¬ÏÂÖÁ»ù²ãÔ±¹¤¶¼ÓпÉÄܶԲúÆ·Éè¼ÆÆÀÍ·ÂÛ×㣬ֻҪËû¸öÈËÓиöµØ·½Óõò»Ë¬£¨¼«´ó¿ÉÄÜÊǸöÈËϲºÃ£©È»ºóÓÖÕýºÃ¸ú²úÆ·¾­Àí±È½ÏÊìϤÄܹ»´îµÃÉÏ»°£¬¶¼»áÌá³ö¸÷ÖÖÒâ¼û¡£²úÆ·¾­Àí¶ã²»ÆðÒ²ÈDz»Æð£¬ÓÐʱҲÊÇû°ì·¨£¬àÅ¡£

µ«Âäʵµ½¹¤³ÌʦÕâ±ßÀ´£¬ÕâÖÖÇé¿ö¾ÍºÜµ°ÌÛ¡£ÒòΪÕâÖָıäÓÐʱºò²»¹âÊÇUI£¬UIËù¶ÔÓ¦µÄÂß¼­Ò²ÓÐÒª¸ÄµÄ¿ÉÄÜ£¬¹¤³Ìʦ¾Í»áÁ½±ßÎļþ¶¼¸Ä£¬ÄãÔ­À´linkµÄÄǸöviewÏÖÔÚ²»linkÁË£¬È»ºóÄãµÄoutlet¶ÔӦҲҪɾµô£¬ÕâÁ½²¿·ÖÖ»ÒªÓÐÒ»¸öû×ö£¬±àÒëͨ¹ýÖ®ºóÅÜÒ»ÏÂApp£¬Ò»»á¶ù¾ÍcrashÁË¡£¿´ÆðÀ´Õâ²»ÊÇʲô´óʶù£¬µ«ºÜÓ°ÏìÐÄÇé¡£

ÁíÍ⣬Èç¹û³öÏÖ²¿·ÖµÄ´úÂ븴Ó㬱ÈÈçËµÄ³Ò³ÃæÏÂij¸öViewҲϣÍû·ÅÔÚÁíÍâÒ»¸öÒ³ÃæÀÏà¹ØµÄ²Ù×÷¾Í²»ÊǸ´ÖÆÕ³ÌùÕâô¼òµ¥ÁË£¬Ä㻹µÃÖØÐÂlinkÒ»±é¡£Ò²ºÜÓ°ÏìÐÄÇé¡£

¸´ÔÓ½çÃæÔªËØ£¬¸´ÔÓ¶¯»­½»»¥³¡¾°µÄ¿ª·¢ÈÎÎñ±È½Ï¶à¡£

ÒªÊÇÏëÔÚ»ùÓÚStoryBoardµÄÏîÄ¿ÖÐ×öÒ»¸ö¶¯»­£¬ºÜ·³¡£×ö¼¸¸ö¸´ÔÓ½çÃæÔªËØ£¬Ò²ºÜ·³¡£ÓеÄʱºòÎÒÃǹÒCustom ViewÉÏÈ¥£¬ÆäʵÔÚStoryBoardÀïÃæ¿´À´¾ÍÊÇÒ»¸ö¿Õ°×View¡£È»ºóÁíÍâÒ»µã¾ÍÊÇ£¬µ±ÄãµÄlayout³öÏÖÎÊÌâÐèÒªµ÷ÕûµÄʱºò£¬»¹ÊÇͦÄÑÕÒµ½ÎÊÌâËùÔڵģ¬ÓÈÆäÊÇÔÚ¸´ÔÓ½çÃæÔªËØµÄÇé¿öÏ¡£

ËùÒÔÔÚÕë¶ÔView²ãÕâ±ßµÄÒªÇóʱ£¬ÎÒÒ²Êǽ¨Òé²»ÒªÓÃStoryBoard¡£ÊµÏÖ¼òµ¥µÄ¶«Î÷£¬ÓÃCodeÒ»Ñù¼òµ¥£¬ÊµÏÖ¸´ÔӵĶ«Î÷£¬Code±ÈStoryBoard¸ü¼òµ¥¡£ËùÒÔÎÒ¸ü¼ÓÌᳫÓÃcodeÈ¥»­view¶ø²»ÊÇstoryboard¡£

ÊÇ·ñÓбØÒªÈÃÒµÎñ·½Í³Ò»ÅÉÉúViewController

ÓеÄʱºòÎÒÃdzöÓڼǼÓû§²Ù×÷ÐÐΪÊý¾ÝµÄÐèÒª£¬»òÕßͳһÅäÖÃÒ³ÃæµÄÄ¿µÄ£¬»á´ÓUIViewControllerÀïÃæÅÉÉúÒ»¸ö×Ô¼ºµÄViewController£¬À´Ö´ÐÐһЩͨÓÃÂß¼­¡£±ÈÈçÌìè¿Í»§¶ËÒªÇóËùÓеÄViewController¶¼Òª¼Ì³Ð×ÔTMViewController¡£Õâ¸öͳһµÄ¸¸ÀàÀïÃæÕë¶ÔÒ»¸öViewControllerµÄËùÓÐÉúÃüÖÜÆÚ¶¼×öÁËһЩÉèÖã¬ÖÁÓÚÕâÀï¶¼ÓÐÄÄЩÉèÖöÔÓÚ±¾ÆªÎÄÕÂÀ´Ëµ²¢²»ÖØÒª¡£ÔÚÕâÀïÎÒÏëÌÖÂÛµÄÊÇ£¬ÔÚÉè¼ÆView¼Ü¹¹Ê±£¬Èç¹ûΪÁËÄܹ»´ïµ½Í³Ò»ÉèÖûòÖ´ÐÐͳһÂß¼­µÄÄ¿µÄ£¬Ê¹ÓÃÅÉÉúµÄÊÖ¶ÎÊÇÓбØÒªµÄÂð£¿

ÎÒ¾õµÃûÓбØÒª£¬ÎªÊ²Ã´Ã»ÓбØÒª£¿

1.ʹÓÃÅÉÉú±È²»Ê¹ÓÃÅÉÉú¸üÈÝÒ×Ôö¼ÓÒµÎñ·½µÄʹÓóɱ¾

2.²»Ê¹ÓÃÅÉÉúÊÖ¶ÎÒ»ÑùÒ²ÄܴﵽͳһÉèÖõÄÄ¿µÄ

ÕâÁ½ÌõÔ­ÒòÊÇÎÒÈÏΪûÓбØÒªÊ¹ÓÃÅÉÉúÊֶεÄÀíÓÉ£¬Èç¹ûÁ½ÌõÀíÓÉÄã¶¼ÐÄÁìÉñ»á£¬ÄÇôÏÂÃæµÄ¾Í¿ÉÒÔ²»Óÿ´ÁË¡£Èç¹ûÄ㻹ÓеãÒÉ»ó£¬Çë¿´ÏÂÃæÎÒÀ´Ïêϸ½²Ò»ÏÂÔ­Òò¡£

ΪʲôʹÓÃÁËÅÉÉú£¬ÒµÎñ·½µÄʹÓóɱ¾»áÌáÉý£¿

Æäʵ²»¹âÊÇÒµÎñ·½µÄʹÓóɱ¾£¬¼Ü¹¹µÄά»¤³É±¾Ò²»áÉÏÉý¡£ÄÇô¾ßÌåµÄ³É±¾¶¼À´×ÔÓÚÄÄÀïÄØ£¿

¼¯³É³É±¾£ºÕâÀï½²µÄ¼¯³É³É±¾ÊÇÕâÑùµÄ£ºÈç¹ûÒµÎñ·½×Ô¼º¿ªÁËÒ»¸ö¶ÀÁ¢demo£¬¿ìËÙÍê³ÉÁËij¸ö¶ÀÁ¢Á÷³Ì£¬ÏÖÔÚËûÏë°ÑÕâ¸öÏÖÓÐÁ÷³Ì¼¯ºÏ½øÈ¥¡£ÄÇôÎÊÌâ¾ÍÀ´ÁË£¬ËûÐèÒª°ÑËùÓжÀÁ¢µÄUIViewController¸Ä±ä³ÉTMViewController¡£ÄÇΪʲô²»ÊÇÒ»¿ªÊ¼¾ÍÁ¢¿ÌʹÓÃTMViewControllerÄØ£¿ÒòΪҪÏëÒýÈëTMViewController£¬¾ÍÒªÒýÈëÕû¸öÌìèAppËùÓеÄÒµÎñÏߣ¬ËùÓеĻù´¡¿â£¬ÒòΪÕâ¸ö¸¸ÀàÀïÃæÉæ¼°ºÜ¶àÌìè»·¾³²ÅÓеÄÄÚÈÝ£¬Ëùν°Î³öÂܲ·´ø³öÄ࣬ÄãÒªÊÇÏë¼òµ¥¼Ì³ÐһϾÍÄܸ㶨µÄÊÂÇ飬´î»·¾³¾ÍÒª¸ã°ëÌ죬ȻºóÕâ¸öСDemo²ÅÄÜÅÜµÃÆðÀ´¡£

¶ÔÓÚÒµÎñ²ã´æÔÚµÄËùÓи¸ÀàÀ´Ëµ£¬ËüÃÇÊǺÜÈÝÒ׸úÏîÄ¿ÖÐµÄÆäËû´úÂë¾À²ø²»ÇåµÄ£¬ÕâʹµÃÒµÎñ·½¿ª·¢Ê±Óöµ½Ò»¸öÁ½ÄÑÎÊÌ⣺Ҫô°ÑËùÓÐÒÀÀµÈ«²¿¸ã¶¨£¬È»ºó»ùÓÚApp»·¾³£¨±ÈÈçÌì裩Ͽª·¢Demo£¬ÒªÃ´¾ÍÊÇ×Ô¼ºDemoдºÃÖ®ºó£¬°´ÕÕ»·¾³ÒªÇó¸Ä´úÂë¡£ÕâÀïµÄÁ½ÄÑÎÊÌâ¶¼»á´øÀ´³É±¾£¬¶¼»áÓ°ÏìÒµÎñ·½µÄµü´ú½ø¶È¡£

ÎÒ²»È·¶¨¸÷λËùÔÚ¹«Ë¾ÊÇ·ñ»áÓÐÕâÑùµÄÇé¿ö£¬µ«ÎÒ¿ÉÒÔÔÚÕâÀï¸ø´ó¼Ò¾ÙÒ»¸öÎÒÔÚ°¢ÀïµÄÕæÊµµÄÀý×Ó£ºÎÒ×î½üÔÚ¿ª·¢Ä³Â˾µDemoºÍÏà¹ØÒ³ÃæÁ÷³Ì£¬×îÖÕÊÇÒªºÏ²¢µ½ÌìèÕâ¸öAppÀïÃæÈ¥µÄ¡£Ê¹ÓÃÌìè»·¾³½øÐпª·¢µÄ»°£¬pod installÍêËùÓÐÒÀÀµ²î²»¶àÐèÒª10·ÖÖÓ£¬È»ºó´ò¿ªworkspaceÖ®ºó£¬²î²»¶àÒªÔٵȴý1·ÖÖÓÈÃxcode×öºÃË÷Òý£¬È»ºó²ÅÄÜÕýʽ¿ªÊ¼¹¤×÷¡£ÔÚÕâÀïÒª¸ÐлһÏÂÔòƽ£¬ÒòΪËûÔÚ´Ë»ù´¡ÉÏ×öÁ˺ܶàÓÅ»¯£¬Ê¹µÃÕâ¸ö1·ÖÖÓÒѾ­±ÈÔ­À´µÄʱ¼ä¶ÌºÜ¶àÁË¡£µ«Èç¹ûÌìè»·¾³ÓиüУ¬Äã¾ÍÒªÔÙÖØ¸´Ò»´ÎÉÏÃæµÄÁ÷³Ì£¬·ñÔò ¾ÍºÜÓпÉÄܱàÒë²»¹ý¡£

°ÝÍУ¬ÎÒÖ»ÊÇÏë×ö¸öDemo¶øÒÑ£¬²»Ïë¸ãÄÇô¸´ÔÓ¡£

ÉÏÊÖ½ÓÊܳɱ¾£ºÐÂÀ´µÄÒµÎñ¹¤³ÌʦÓеÄʱºò²»¼ûµÃ¶¼¼ÇµÃÿһ¸öViewController¶¼±ØÐëÒªÅÉÉú×ÔTMViewController¶ø²»ÊÇÖ±½ÓµÄUIViewController¡£ÐÂÀ´µÄ¹¤³ÌʦËû²»ÄÜÖ±½Ó°´ÕÕÆ»¹ûÔ­ÉúµÄ×ö·¨È¥×öÊÂÇ飬ËûÐèÒª¶îÍâѧϰ£¬±ÈÈç˵£ºËùÓеÄViewController¶¼±ØÐë¼Ì³Ð×ÔTMViewController¡£

¼Ü¹¹µÄά»¤ÄѶȣº¾¡¿ÉÄÜÉÙµØÊ¹Óü̳ÐÄÜÌá¸ßÏîÄ¿µÄ¿Éά»¤ÐÔ£¬¾ßÌåÄÚÈÝÎÒÔÚ¡¶Ìø³öÃæÏò¶ÔÏó˼Ï루һ£© ¼Ì³Ð¡·ÀïÃæËµÁË£¬ÔÚÕâÀïÎÒÏë͵ÀÁ²»Ïë°ÑÄÇÆªÎÄÕÂÀï˵¹ýµÄ¶«Î÷ÔÙ˵һ±é¡£

Æäʵ¶ÔÓÚÒµÎñ·½À´Ëµ£¬Ö÷Òª»¹ÊǵÚÒ»¸ö¼¯³É³É±¾±È½Ïµ°ÌÛ£¬ÒòΪÕâÊdz¤Í´£¬Ã¿´ÎÒª×öµãʲôÊÂÇé¶¼»áÓöµ½¡£µÚ¶þµãµ¹»¹ºÃ£¬¶ÌÍ´¡£µÚÈýµã¸úÒµÎñ¹¤³Ìʦûɶ¹ØÏµ¡£

ÄÇôÈç¹û²»Ê¹ÓÃÅÉÉú£¬ÎÒÃÇÓ¦¸ÃʹÓÃʲôÊֶΣ¿

ÎҵĽ¨ÒéÊÇʹÓÃAOP¡£

Ôڼܹ¹Ê¦ÊµÏÖ¾ßÌåµÄ·½°¸Ö®Ç°£¬±ØÐëÒªÏëÇå³þ¼¸¸öÎÊÌ⣬Ȼºó²ÅÄܾö¶¨²ÉÓÃÄÄÖÖ·½°¸¡£ÊÇÄöÎÊÌ⣿

1.·½°¸µÄЧ¹û£¬ºÍ×îÖÕÒª´ïµ½µÄÄ¿µÄÊÇʲô£¿

2.ÔÚ×Ô¼ºµÄ֪ʶÌåϵÀïÃæ£¬ÊÇ·ñ¾ß±¸ÊµÏÖÕâ¸ö·½°¸µÄÄÜÁ¦£¿

3.ÔÚÒµ½çÒÑÓеĿªÔ´×é¼þÀïÃæ£¬ÊÇ·ñÓпÉÒÔÖ±½ÓÄÃÀ´ÓõÄÂÖ×Ó£¿

ÎÒÃÇÏÈ¿´µÚÒ»¸öÎÊÌ⣺·½°¸µÄЧ¹û£¬ºÍ×îÖÕÒª´ïµ½µÄÄ¿µÄÊÇʲô£¿

·½°¸µÄЧ¹ûÓ¦¸ÃÊÇ£º

1.ÒµÎñ·½¿ÉÒÔ²»ÓÃͨ¹ý¼Ì³ÐµÄ·½·¨£¬È»ºó¿ò¼ÜÄܹ»×öµ½¶ÔViewControllerµÄͳһÅäÖá£

2.ÒµÎñ·½¼´Ê¹ÍÑÀë¿ò¼Ü»·¾³£¬²»ÐèÒªÐÞ¸ÄÈκδúÂëÒ²Äܹ»ÅÜÍê´úÂë¡£ÒµÎñ·½µÄViewControllerÒ»µ©¶ªÈë¿ò¼Ü»·¾³£¬²»ÐèÒªÐÞ¸ÄÈκδúÂ룬¿ò¼Ü¾ÍÄܹ»Æðµ½ËüÓ¦¸ÃÆðµÄ×÷Óá£

Æäʵ¾ÍÊÇҪʵÏÖ²»Í¨¹ýÒµÎñ´úÂëÉ϶Կò¼ÜµÄÖ÷¶¯Ó­ºÏ£¬Ê¹µÃÒµÎñÄܹ»±»¿ò¼Ü¸ÐÖªÕâÑùµÄ¹¦ÄÜ¡£Ï¸»¯ÏÂÀ´¾ÍÊÇÁ½¸öÎÊÌ⣬¿ò¼ÜÒªÄܹ»À¹½Øµ½ViewControllerµÄÉúÃüÖÜÆÚ£¬ÁíÒ»¸öÎÊÌâ¾ÍÊÇ£¬À¹½ØµÄ¶¨Òåʱ»ú¡£

¶ÔÓÚ·½·¨À¹½Ø£¬ºÜÈÝÒ×Ïëµ½Method Swizzling£¬ÄÇôÎÒÃÇ¿ÉÒÔдһ¸öʵÀý£¬ÔÚAppÆô¶¯µÄʱºòÌí¼ÓÕë¶ÔUIViewControllerµÄ·½·¨À¹½Ø£¬ÕâÊÇÒ»ÖÖ×ö·¨¡£»¹ÓÐÁíÒ»ÖÖ×ö·¨¾ÍÊÇ£¬Ê¹ÓÃNSObjectµÄloadº¯Êý£¬ÔÚÓ¦ÓÃÆô¶¯Ê±×Ô¶¯¼àÌý¡£Ê¹ÓúóÕߵĺô¦ÔÚÓÚ£¬Õâ¸öÄ£¿éÖ»Òª±»ÏîÄ¿°üº¬£¬¾ÍÄܹ»·¢»Ó×÷Ó㬲»ÐèÒªÔÚÏîÄ¿ÀïÃæÌí¼ÓÈκδúÂë¡£

È»ºóÁíÍâÒ»¸öÒª¿¼ÂǵÄÊÂÇé¾ÍÊÇ£¬Ô­ÓеÄTMViewController£¨ËùνµÄ¸¸ÀࣩҲÊÇ»áÌṩ¶îÍâ·½·¨·½±ã×ÓÀàʹÓõģ¬Method SwizzlingÖ»Ö§³ÖÕë¶ÔÏÖÓз½·¨µÄ²Ù×÷£¬ÍØÕ¹·½·¨µÄ»°£¬àÅ£¬µ±È»ÊÇÓÃCategoryÀ²¡£

ÎÒ±¾È˲»ÔÞ³ÉCategoryµÄ¹ý¶ÈʹÓ㬵«¼øÓÚCategoryÊÇ×îµäÐ͵ϝ¼Ì³ÐΪ×éºÏµÄÊֶΣ¬ÔÚÕâ¸ö³¡¾°Ï»¹ÊÇÊʺÏʹÓõġ£»¹ÓеľÍÊÇ£¬¹ØÓÚMethod SwizzlingÊÖ¶ÎʵÏÖ·½·¨À¹½Ø£¬Òµ½çÒ²ÒѾ­ÓÐÁËÏֳɵĿªÔ´¿â£ºAspects£¬ÎÒÃÇ¿ÉÒÔÖ±½ÓÄÃÀ´Ê¹Óá£

ÎÒÕâ±ßÓиö·Ç³£·Ç³£Ð¡µÄDemo¿ÉÒԷųöÀ´¸ø´ó¼Ò£¬Õâ¸öDemoÖ»ÊÇÒ»¸öµã¾¦Ö®±Ê£¬ÓÐһЩ»°ÎÒҲдÔÚÕâ¸öDemoÀïÃæÁË£¬¸÷λ¼Ü¹¹Ê¦ÃÇÄãÃÇ¿ÉÒÔ»ùÓÚ¸÷×Ô¹«Ë¾AppµÄÐèÇóÈ¥ÍØÕ¹¡£

Õâ¸öDemo²»°üº¬Category£¬±Ï¾¹Category»¹ÊǵÃÄãÃÇ×Ô¼ºÈ¥Ð´°¡¡«È»ºóÕâÌ×·½°¸Äܹ»Íê³ÉÔ­À´Í¨¹ýÅÉÉúÊÖ¶ÎËùÓпÉÒÔÍê³ÉµÄÈÎÎñ£¬µ«Í¬Ê±ÓÖÔÊÐíÒµÎñ·½²»±ØÌí¼ÓÈκδúÂ룬ֱ½ÓʹÓÃÔ­ÉúµÄUIViewController¡£

È»ºóÁíÍâÒªÌáÐѵÄÊÇ£¬Õâ·½°¸µÄÄ¿µÄÊÇÏû³ý²»±ØÒªµÄ¼Ì³Ð£¬ËäÈ»²»ÏÞ¶¨ÓÚUIViewController£¬µ«ËüÒ²ÊÇÓÐÊÊÓ÷¶Î§µÄ£¬ÔÚÊÊÓü̳еĵط½£¬»¹ÊÇÒªÀÏÀÏʵʵʹÓü̳С£±ÈÈçÄãÓÐÒ»¸öÊý¾ÝÄ£ÐÍ£¬ÊÇÓÉ»ù±¾Ä£ÐÍÅÉÉú³öµÄÒ»ÕûÌ×Ä£ÐÍ£¬ÄÇôÕâ¸öʱºò»¹ÊÇÀÏÀÏʵʵʹÓü̳С£ÖÁÓÚÄÃÄóºÎʱʹÓü̳У¬ÏàП÷λ¼Ü¹¹Ê¦Ò»¶¨Äܹ»´¦ÀíºÃ£¬»òÕßÄãÒ²¿ÉÒԲο¼ÎÒÇ°ÃæÌáµ½µÄÄÇÆªÎÄÕÂÀ´¿ØÖÆÄÃÄóµÄ³ß¶È¡£

¹ØÓÚÔÚÄĶùдConstraints£¿

ÆäʵÔÚviewWillAppearÕâÀï¸Ä±äUIÔªËØ²»ÊǺܿɿ¿£¬Autolayout·¢ÉúÔÚviewWillAppearÖ®ºó£¬ÑϸñÀ´ËµÕâÀïͨ³£²»×öÊÓͼλÖõÄÐ޸쬶øÓÃÀ´¸üÐÂFormÊý¾Ý¡£¸Ä±äλÖÿÉÒÔ·ÅÔÚviewWilllayoutSubview»òÕßdidLayoutSubviewÀ¶øÇÒÔÚviewDidLayoutSubviewÈ·¶¨UIλÖùØÏµÖ®ºóÉèÖÃautoLayout±È½ÏÎÈÍס£ÁíÍ⣬viewWillAppearÔÚÿ´ÎÒ³Ãæ¼´½«ÏÔʾ¶¼»áµ÷Óã¬viewWillLayoutSubviewsËäÈ»ÔÚlifeCycleÀïµ÷ÓÃ˳ÐòÔÚviewWillAppearÖ®ºó£¬µ«ÊÇÖ»ÓÐÔÚÒ³ÃæÔªËØÐèÒªµ÷Õûʱ²Å»áµ÷Ó㬱ÜÃâÁËConstraintsµÄÖØ¸´Ìí¼Ó¡£

Æ»¹ûÔÚÎĵµÖÐÖ¸³ö£¬updateViewConstraintsÊÇÓÃÀ´×öadd constraintsµÄµØ·½¡£

µ«ÊÇÔÚÕâÀïÓÐÒ»¸ö»Ø´ðÕß˵updateViewConstraints²¢²»ÊʺÏ×öÌí¼ÓConstraintsµÄÊÂÇé¡£

×ۺϸ÷ÖÖ²âÊԺ͸÷ÖÖÎĵµ£¬ÎÒÏÖÔÚ¾õµÃ»¹ÊÇÔÚviewDidLoadÀïÃæ¿ªÒ»¸ölayoutPageSubviewsµÄ·½·¨£¬È»ºóÔÚÕâ¸öÀïÃæ´´½¨Constraints²¢Ìí¼Ó£¬»á±È½ÏºÃ¡£¾ÍÊÇÏñÏÂÃæÕâÑù£º

- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview:self.firstView];
[self.view addSubview:self.secondView];
[self.view addSubview:self.thirdView];
[self layoutPageSubviews];
}
- (void)layoutPageSubviews
{
[self.view addConstraints:xxxConstraints];
[self.view addConstraints:yyyConstraints];
[self.view addConstraints:zzzConstraints];
}

Õâ¸ö×ö·¨ÊÇĿǰÎÒ×Ô¼º¾õµÃ¿ÉÄܱȽϺÏÊʵÄ×ö·¨£¬µ±È»Ò²»¶Ó­ÆäËûͬѧ¼ÌÐøÄóö×Ô¼ºµÄ¿´·¨£¬ÎÒÃÇÀ´ÌÖÂÛ¡£

   
1914 ´Îä¯ÀÀ       29
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ

ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ