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