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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOS¿ª·¢¡«UI²¼¾Ö
 
×÷ÕߣºjgCho À´×ÔÓÚ£º²©¿ÍÔ° ·¢²¼ÓÚ 2016-2-25
  3895  次浏览      27
 

iOS¿ª·¢¡«UI²¼¾Ö£¨Ò»£©³õ̽Size Class

Ëæ×ÅiOS8ϵͳµÄ·¢²¼£¬Ò»¸öȫеÄÒ³ÃæUI²¼¾Ö¸ÅÄî³öÏÖ£¬Õâ¸öÐÂÌØÐÔ½«µß¸²°üÀ¨iOS7¼°Ö®Ç°°æ±¾µÄUI²¼¾Ö·½Ê½£¬Õâ¸öÐÂÌØÐÔ¾ÍÊÇSize Class¡£Size ClassÅäºÏAuto Layout¿ÉÒÔ½â¾öËùÓУ¨°üÀ¨iPhone¼°iPad£©iOSÉ豸ÆÁÄ»³ß´ç¼°ÆÁÄ»ÐýתʱºòµÄUIÊÊÅäÎÊÌâ¡£

¶þ¡¢ÎªÊ²Ã´ÒªÊ¹ÓÃSize Class

Ö±µ½iPhone6·¢²¼ºó£¬Ä¿Ç°iOSÉ豸µÄÆÁÄ»³ß´çÒѾ­ÓÐ4ÖÖÁË£¬Èçͼ£º

iPhone6û³öÏÖ֮ǰ£¬»¹¿ÉÒÔͨ¹ý´úÂëÀ´ÊÊÅäÁ½ÖֳߴçµÄUI£¬µ«iPhone6·¢²¼ºó£¬½¥½¥µÄ·¢ÏÖÒÔǰµÄ·½Ê½¿ÉÄÜÕæµÄÒªÌÔÌ­ÁË£¬ÒòΪÒÔºó¿ÉÄÜ»¹ÒªÃæ¶Ô¸ü¶àµÄÆÁÄ»³ß´ç¡£ÏÔȻӲ±àÂëUIµÄFrameµÄʱ´úÒª¹ýÈ¥ÁË£¬ÒªÊ¹ÓÃAuto LayoutÁË¡£

×Ô´ÓiOS6¿ªÊ¼¾ÍÒýÈëÁËAuto Layout£¬µ«Ò»Ö±Ã»ÓÃÍÆ¹ãʹÓã¬Ô­ÒòÓкܶࣨÀýÈ磺Auto Layout±¾Éí²»ÊǺܳÉÊì¡¢Ó²±àÂë¿ÉÒÔ½â¾öiPhone½öÓÐÁ½ÖÖÆÁÄ»³ß´çµÄUIÊÊÅä¡¢iPhoneÏîÄ¿ºÍiPadÏîÄ¿·Ö¿ªÀ´½øÐеȣ©¡£

Size ClassÊÇÅäºÏAuto LayoutÀ´Ê¹Óõģ¬ÈÃAuto Layout·½Ê½±äµÃ²»ÄÇô¸´ÔÓ¡£

Èý¡¢¸ÃÈçºÎʹÓÃSize Class

ҪʹÓÃSize Class£¬Ê×ÏÈÒª°²×°×îеÄXcode6£¬Ð½¨Ò»¸öSingle View Application templateÏîÄ¿£¬Ñ¡ÔñMain.storyboard£­> View£¬²é¿´InspectorÊôÐÔ£º

ĬÈÏSize Classes¾ÍÒѾ­Ê¹ÓÃÁË£¬µ±È»Èç¹û²»ÏëʹÓÃËüÒ²¿ÉÒԹصô£¬È»ºóʹÓþɵIJ¼¾Ö·½Ê½¡£µ«Èç¹ûÑ¡ÔñʹÓÃSize Class£¬È»ºó¹ØµôAuto Layout£¬Xcode»áµ¯³öÒ»¸ö¾¯¸æ¿ò£º£¨ÉÔºó¾Í»áÃ÷°×Ϊʲô£¡£©

Ñ¡Ôñcancel£¬ÒòΪ½ÓÏÂÀ´ÒªÊ¹ÓÃSize Classes¡£

Size ClassesÆäʵ¾ÍÊǽ«iOSÉ豸ÆÁÄ»µÄSize½øÐзÖÀ࣬ÈçºÎ·ÖÀàµÄÄØ£¿

¶ÔÓÚiOSÉ豸£¨ÎÞÂÛiPhone»¹ÊÇiPad£©£¬¿í¶ÈºÍ¸ß¶È¶¼¸÷·ÖΪ3ÖÖÇé¿ö£º½ô´Õ£¨Compact£©¡¢¹æÔò£¨Regular£©¡¢ÈκΣ¨Any£©

ÆäÖС°ÈκΡ±£¨Any£©°üº¬½ô´Õ£¨Compact£©¡¢¹æÔò£¨Regular£©ÀàÐÍ¡£Èç¹ûÆÁÄ»¿í¶ÈÓÃw±íʾ£¬¸ß¶ÈÓÃh±íʾ£¬ÄÇôw£¨Regular£©£¯h£¨Regular£©×éºÏ¾ÍÊÇiPadÆÁÄ»³ß´ç£¨size£©µÄÀà±ð£¨class£©£¬ÎÞÂÛiPadºáÆÁ»¹ÊÇÊúÆÁ£¬ÆÁÄ»³ß´çÀà±ð¶¼ÊÇw£¨Regular£©£¯h£¨Regular£©£¬ÉÏͼ¿ÉÒÔºÜÇå³þµÄ±í´ï¡£

¹ÙÍøÒ²ÁоÙÁËһЩ£º

µ½ÕâÀïÓ¦¸ÃÃ÷°×ÁË£¬Size ClassesÊǽ«ÆÁÄ»³ß´çµÄÖÖÀà×öÁ˽øÒ»²½µÄ³éÏó¡£ÄÇÓÐÒ»¸öÎÊÌ⣬·ÖÀàµÄÓÐʲôÓ㿸ÃÔõôÓ𡣿

ÒÔǰΪ²»Í¬µÄiOSÉ豸³ß´ç»òÕßͬ³ß´çºáÊúÆÁ²»Í¬ÊÊÅäUI£¬¶¼Òª¸ù¾Ýʵ¼ÊÇé¿ö¶øÈ¥¼ÆËãframe¡£Ê¹ÓÃSize ClassesÊǸù¾Ýµ±Ç°µÄÆÁÄ»sizeÀàÐͶøÊ¹ÓÃAuto Layout·½Ê½½øÐв¼¾ÖÁË£¬ÒªÞðÆú֮ǰ¼ÆËãframeµÄ˼·£¬¶ø¸ÄÓÃÏà¶Ô²¼¾ÖµÄ˼άȥ˼¿¼£¨Êµ¼ÊÉÏ»¹ÊÇÒª¼ÆËãframe£©¡£

¶øÇÒXcode6×î´óµÄÍ»ÆÆÒ²ÊÇÕâÀ²»ÔÚÐèÒª½¨Á¢²»Í¬³ß´çµÄstoryboardÁË£¬Ö»Òª½¨Á¢Ò»¸ö£¬È»ºóÐÞ¸ÄÆäviewµÄsize¾Í¿ÉÒÔ×ö¸÷ÖÖÆÁÄ»³ß´çµÄÊÊÅ䣬ÈçÏ£º

ÀýÈçÎÒÒª×öiPadÒ³ÃæÉè¼Æ£¬¾ÍÉèÖóÉw £¨Regular£©£¯h£¨Regular£©

È»ºóͬÑùµÄ¹¤³Ì£¬ÓÖÒª¼æÈݺáÆÁµÄiPhone6 plus£¬¾Í¿ÉÒÔ°ÑviewµÄsize classÉèÖóɣºw £¨Regular£©£¯h£¨Compact£©£¬È»ºó¼ÌÐøÊÊÅä

È»ºóµ±³ÌÐòÅÜÔÚ²»Í¬µÄÉ豸ÉÏ£¬»òÕßÉ豸ºáÆÁºÍÊúÆÁÇл»£¬¾ÍÄÜÏÔʾÏàÓ¦µÄUIÁË¡£

˵ÁËÕâô¶à£¬»¹ÊǶ¯ÊÖʵÑéһϰɣº

ÊÊÅäiPhone6£¬ÔÚRootViewControllerµÄviewÉÏÌí¼ÓÒ»¸öеÄview£¬ÈÃÕâ¸öеÄviewÎÞÂÛÆÁÄ»ºáÆÁ»¹ÊÇÊúÆÁʱºò¶¼¾àÀëÆäsuperviewµÄ±ßÔµ50µã¿í£¬²¢ÇÒºáÆÁʱºòΪÂÌÑÕÉ«£¬ÊúÆÁʱºòΪºìÑÕÉ«¡£

1¡¢Ð½¨ÏîÄ¿£¨¸Õ¸ÕÒѾ­Ð½¨ÁËÒ»¸öAL8µÄÏîÄ¿£¬²»Öظ´²½ÖèÁË£©

2¡¢Çл»size classΪwCompact£¯hRegularģʽ

²¢ÇÒÌí¼ÓÒ»¸öview£¬²»ÓÃ¹ÜÆäframe£¬²¢ÉèÖÃÆä±³¾°É«ÎªºìÉ«

½ÓÏÂÀ´Ñ¡ÖкìÉ«µÄview£¬È»ºóµã»÷Xcode¶¥²¿¹¤¾ßÀ¸µÄEditor£­Pin£¬È»ºó·Ö±ðÌí¼ÓºìÉ«viewÏà¶Ôsuperview±ß¿òµÄÔ¼Êø£¨ÉÏÏÂ×óÓÒ£©

Ìí¼ÓÔ¼ÊøµÄ¹ý³ÌÖлῴµ½Ô¼ÊøµÄÏßÊÇ»ÆÑÕÉ«£¬±íÃ÷µ±Ç°µÄÔ¼Êø»¹²»ÄÜÈ·¶¨viewµÄframe£¬ÐèÒª¼ÌÐøÌí¼Ó£¬µ±Ìí¼ÓÍê4¸öÔ¼Êøºó£¬Ô¼ÊøÏßµÄÑÕÉ«ÊÇÀ¶É«µÄ£¬±íÃ÷µ±Ç°Ô¼ÊøÊÇÕýÈ·µÄ¡£

È»ºóÑ¡ÖÐÔ¼Êø£¬Éè¶¨Ô¼ÊøµÄÖµ£¨ÎÒÃDz»ÊÇÏëÈÃеÄview¾àÀëÆäsuperview±ß½ç50µã¿íÂ𣡣©£¬4¸öÔ¼Êø¶¼ÒªÉèÖá£

ÉèÖÃÍêºóµã»÷ÏÂview»á×Ô¶¯¸üÐÂframe£¬Ó¦¸ÃÊÇÕâÑùµÄ£º

3¡¢Çл»size classΪwRegular£¯hCompactģʽ£¬È»ºóÖØ¸´µÚ¶þ²½ÖеÄÉèÖã¬Çø±ðÊÇÐÂÌí¼ÓµÄview±³¾°ÑÕÉ«ÉèÖÃΪÂÌÉ«¡£

4¡¢´ó¹¦¸æ³É£¬ÓÃÄ£ÄâÆ÷ÔËÐÐϰɣ¬Ä£ÄâÆ÷ҪѡÔñiPhone6 plusŶ£¡È»ºóÐýתÆÁÄ»¿´¿´ÊDz»ÊÇÎÒÃÇÏëÒªµÄЧ¹û£¡

˼¿¼£º°ÑÄ£ÄâÆ÷Çл»ÎªiPhone6¡¢iPhone5¡¢iPhone4s¡¢iPad»áÓÐʲôÏÖÏó£¡ÏÂһƪ»á½âÊÍ£¡

iOS¿ª·¢¡«UI²¼¾Ö£¨¶þ£©storyboardÖÐautolayoutºÍsize classµÄʹÓÃÏê½â

Ò»¡¢¸ÅÒª£ºÇ°Ò»Æª³õ²½µÄÃèÊöÁËsize classµÄ¸ÅÄÄÇôʵ¼ÊÖÐÈçºÎʹÓÃÄØ£¬ÏÂÃæÁ½¸öÎÊÌâÊÇÎÒÃÇÒ»¶¨»áÓöµ½µÄ£º

1¡¢Xcode6ÖÐÔö¼ÓÁËsize class£¬ÔÚstoryboardÖÐÈçºÎʹÓã¿

2¡¢auto layout¸ÃÈçºÎÓësize classÅäºÏÀ´½øÐÐUI²¼¾Ö£¿

¶þ¡¢Á˽âÒ»¼þÐÂÊÂÎïµÄ×îºÃµÄ°ì·¨¾ÍÊÇʵ¼ù£¬ÈÃÎÒÃǽҿªÄÇÉñÃØµÄÃæÉ´£º

Àý×Ó1¡¢Ð½¨Ò»¸öSingle View Application templateÏîÄ¿Demo1£¬ÍÏ×§Ò»¸önewViewµ½rootViewÉÏ£¬²¢ÉèÖñ³¾°É«ÎªÂÌÉ«£¬ È»ºó²»×öÈÎºÎÆäËûÐ޸ģ¬ÔËÐÐÏîÄ¿£¬Ä£ÄâÆ÷Ñ¡ÔñiPhone6£¬ÔËÐÐЧ¹ûÈçͼ£º

ºáÆÁ£º

朮磼

°ÑÄ£ÄâÆ÷¸ü¸ÄΪiPad¡¢iPhone4sµÈ£¬È»ºóÔÙÐýתÆÁÄ»£¬·¢ÏÖÂÌÉ«µÄnewViewµÄλÖü¸ºõûÓб仯¡£²é¿´Document Outline·¢ÏÖûÓÐÈκÎconstraint£¨Ô¼Êø£©×÷ÓÃÓÚÂÌÉ«viewÉÏ£¬ÀíÂÛÉÏÈç¹ûÒ»¸öviewûÓÐÈκÎconstraint£¬ÄÇôview½«Ã»ÓÐλÖü°´óС£¬µ«Ä¿Ç°À´¿´ÊÇûÎÊÌâµÄ£¬ºÎ½â£¿

²é¿´viewµÄsize inspector£¬·¢ÏÖÃØÃÜÁË£º

Ô­À´Èç¹û²»¸øÒ»¸öviewÌí¼ÓÈκÎconstraint£¬ÏµÍ³»á×Ô¶¯¸øviewÌí¼Ó×ó¡¢ÉÏ¡¢¿í¡¢¸ßËĸöÔ¼Êø£¬¾ÍÊÇ˵ÐÂÂÌÉ«µÄview»áÓй̶¨µÄ¿íºÍ¸ß£¬È»ºóÒÔÆÁÄ»×óÉϽÇΪ²Î¿¼µã£¬ÓÐÒ»¸öϵͳÌí¼ÓµÄĬÈÏλÖᣣ¨Èç¹ûÎÒÃÇÏòÂÌÉ«viewÌí¼ÓÈÎºÎÆäËûÔ¼Êø£¬ÄÇôϵͳ×Ô¶¯Ìí¼ÓµÄÔ¼Êø½«ÊµÐ§£©

»¹ÓÐÒ»¸öÎÊÌâÊÇ£¬¸Õ¸ÕÇл»Á˺ܶ಻ͬÀàÐ͵ÄÄ£ÄâÆ÷£¬Ï൱ÓÚÇл»Á˲»Í¬µÄsize class£¬µ«ÏÔʾÂÌÉ«view¶¼Õý³££¬¶øsize classµÄ´æÔÚµÄÄ¿µÄ¾ÍÊÇΪÁËÇø·Ö²»Í¬µÄsize class£¨ÀýÈ磺iPhone4sºáÆÁwCompact/hCompact£¬iPhone4sÊúÆÁwCompact/hRegular£¬iPadºáÊúÆÁ¶¼ÊÇwRegular/hRegular£©£¬È»ºóÀ´×ö²»Í¬µÄUI²¼¾Ö£¬ºÎ½â£¿

²é¿´µ±Ç°µÄsize class:

µ±Ç°µÄsize classΪwAny/hAny£¬Ò²¾ÍÊÇ˵ÔÚsize classΪwAny/hAnyµÄʱºòÌí¼Óconstraint£¬ÔÚÆäËûsize classµÄʱºòÒ²ÉúЧ¡£Æäʵ´Ó×ÖÃæÉÏÒ²¿ÉÒÔ¿´³ö£¬Any¾ÍÊÇÈκεÄÒâ˼£¬CompactºÍRegularÊÇAnyµÄ×ÓÀà¡£

Àý×Ó2¡¢»ùÓÚiPhoneÊÊÅä½çÃæ£¬Ìí¼ÓÈý¸öviewµ½rootViewÉÏ£¬È»ºóÎÞÂÛºáÆÁ»¹ÊÇÊúÆÁ£¬ÐÂÌí¼ÓµÄÈý¸öviewÖ®¼ä¼°ÓëÆÁÄ»±ß¿òµÄ¾àÀë¶¼±£³Ö²»±äµÄ¼ä¾à20µã¿í£¬Ð§¹ûÈçͼ£º

н¨Ò»¸öSingle View Application templateÏîÄ¿Demo2£¬ÒòΪҪÊÊÅäiPhoneºáÊúÆÁ£¬ËùÒÔÐÞ¸Äsize classΪwCompact/hRegularÀ´ÊÊÅäÊúÆÁ£º

ÍÏ×§3¸öviewµ½rootViewÉÏ£¬²¢ÉèÖÃÆä±³¾°ÑÕÉ«

ΪÁËÂú×ãÉè¼ÆÒªÇó£¬ÒªÌí¼ÓÈçÏÂconstraint£º

£¨1£©É趨ÂÌÉ«view¾àÀësuperview×ó±ß¾àºÍÉϱ߾ࣻ

£¨2£©É趨»ÆÉ«view¾àÀësuperviewÓұ߾àºÍÉϱ߾࣬Ïà¶ÔÂÌÉ«viewµÄµÄ×ó±ß¾à£»

£¨3£©É趨À¶É«viewµÄ×ó±ß¾àºÍÓұ߾àºÍϱ߾࣬Éϱ߾àÀëÂÌÉ«viewϱߵľàÀ룻

£¨4£©É趨ÂÌÉ«viewÓë»ÆÉ«viewµÈ¿í

£¨5£©É趨À¶É«viewÓëÂÌÉ«viewµÈ¸ß

ÏÖÔÚ¿ªÊ¼¶¯ÊÖ°É£ºÑ¡ÖÐÂÌÉ«view£¬Eidtor£­>Pin£­>Leading Space to Superview¸øÂÌÉ«viewÌí¼ÓÏà¶ÔÆäsuperviewµÄ×ó±ß¾à£¬È»ºóÑ¡ÖÐconstraint£¬ÐÞ¸ÄÔ¼ÊøµÄֵΪ20£¬ÆäËûconstraintÒÔ´ËÀàÍÆ£º

Ìí¼ÓÍêÈçͼ£º

ÆäÖкìÉ«¿ò²¿·ÖÇåÎúµÄ±í´ïÁËËùÌí¼ÓµÄconstraint£»

À¶É«¿ò²¿·ÖʱÌí¼ÓµÄconstraint£¬Ä¿Ç°Îª»ÆÉ«Ïߣ¬±íÃ÷µ±Ç°µÄconstraint»¹²»Äܶ¨Î»view£¬µ±Ò»¸öviewµÄconstraintÕýÈ·µÄʱºò£¬constraintµÄÑÕÉ«»á±äΪÀ¶É«¡£

ÂÌÉ«Ïß¿òµÄ²¿·Ö±í´ïÁËconstraintµÄÊýÖµ£¬ÎÒÃÇÏëÈñ߾àΪ20£¬ËùÒÔÉèÖÃÊýֵΪ20 ¡£wC hR Installed±íÃ÷µ±Ç°constraintÊÊÓÃÓÚwC hRÕâÖÖsize class£¬²»ÊʺÏany anyµÄsize class¡£

Ìí¼ÓÂÌÉ«viewÓë»ÆÉ«view֮ǰµÄ¾àÀëʱºò£¬ÓÉÓÚÊÇÉ趨Á½¸ö×ÓviewµÄconstraint£¬ËùÒÔҪѡÖÐÁ½¸öview£¬È»ºóEditor£­>Pin ->Horizontal£¬É趨ֵΪ20£º

ͬÑù·½·¨Editor£­>Pin ->Width Equally£¬É趨ÂÌÉ«viewÓë»ÆÉ«viewµÈ¿í¶È£¬À¶É«viewÓëÂÌÉ«viewµÈ¸ß£¬½á¹ûÈçͼ£º

µ«·¢ÏÖconstraintÑÕÉ«ÈÔÈ»ºó»ÆÉ«£¬Ô­ÒòÊǵ±Ç°viewµÄλÖúÍconstraintÏ£ÍûµÄ²»Ò»Ö£¬¸üÐÂÏÂframe£¨ÒªÑ¡ÖÐ3¸öview£¬ÒòΪconstraint¹ØÁª3¸öview£©»òÕßµã»÷Document OutlineÖеĻÆÉ«Ð¡¼ýÍ·£¬È»ºó»á¿´µ½¾ßÌåµÄconstraintÐÅÏ¢À´Ò»²½²½µ÷ÊÔ£¬Õâ¸öÒ²ÊÇXcode6×îÓÐÍ»ÆÆµÄµØ·½£º

È»ºóЧ¹ûÈçͼ£º

È»ºóÔËÐÐÏÂÏîÄ¿°É£¬·¢ÏÖȷʵºÍÔ¤ÆÚµÄÒ»Ñù¡£È»ºóÐýתÆÁÄ»£¬ÊDz»ÊÇ·¢ÏÖºáÆÁʱºò°×ÁË£¬ÆÁĻʲô¶¼Ã»ÓÐÁË£¿Ô­ÒòÊÇÎÒÃǽö½öÊÊÅäµÄÊúÆÁ£¬ºáÆÁ»¹Ã»ÓÐÊÊÅä°¡£¡

ÐÞ¸Äsize class£¬iPhone4sºáÆÁµÄsize classΪwCompact/hCompact£¬¶øiPhone6 plusΪwReguage/hCompact£¬ÄÇÎÒÃDz»ÈçÉèÖÃΪwAny/hCompact°É£¡È»ºó°²×°ÉϱßÊÊÅäÊúÆÁµÄ·½Ê½ÊÊÅäºáÆÁ¡£ÊÊÅäºÃºóÔÙ´ÎÔËÐУ¬ºáÊúÆÁ¶¼Ó¦¸ÃÊÇÎÒÃÇÏëÒªµÄÁË¡£

Àý×Ó3¡¢Ð½¨Ò»¸öSingle View Application templateÏîÄ¿Demo3£¬Ìí¼ÓÒ»¸öview£¬ÊÇÕâ¸öviewµÄ¿í¶ÈºÍ¸ß¶È¶¼ÊÇ100µã¿í£¬²¢ÇÒʼÖÕ¾ÓÖÐÓÚsuperview£¬Ð§¹ûÈçͼ£º

Õâ¸öÀý×Ӻܼòµ¥£¬Ò²ºÜÈÝÒ×ʵÏÖ£¬Ä¿µÄÊDz¹³äÒÔÉÏÁ½¸öÀý×ÓûÓÐÌá¼°µ½µÄһЩϸ½Ú¡£

ÔÚrootViewÉÏÌí¼ÓÒ»¸öview£¬É趨±³¾°É«ÎªÂÌÉ«£º

ÓÉÓÚ²»´òËãÇø·ÖÊÇÄÄÖÖiOSÉ豸£¬ËùÒÔsize classÑ¡ÔñwAny/hAny£¬È»ºóÂÌÉ«µÄviewËæ±ã·Åµ½superviewÉϾͿÉÒÔ£¬Auto LayoutµÄÀíÄî¾ÍÊDz»ÓÃÈ¥¹Ü¾ßÌåviewµÄframe£¬Òª×¢ÒâµÄÊÇÕâ¸öview×îÖÕÏëÈçºÎµÄÏÔʾ£¬ÊôÓÚ»ùÓÚÄ¿µÄÉè¼ÆµÄ·¶³ë¡£

Õâ¸öÀý×ÓÒªÍê³ÉÁ½¼þÊÂÇ飺

£¨1£©Éè¶¨Ô¼ÊøÊ¹viewµÄ¿íºÍ¸ßΪ100µã¿í

£¨2£©Éè¶¨Ô¼ÊøÊ¹viewʼÖÕ¾ÓÖÐÓÚsuperview

ÏÈ×öµÚ£¨1£©¼þÊ£ºÑ¡ÖÐview£¬È»ºóEditor£­>Pin->Width£¬É趨Ϊ100£¬Í¬Ñù·½·¨É趨Height

È»ºóµÚ£¨2£©¼þÊÇÈÃview¾ÓÖУº»¹ÊÇÑ¡ÖÐview£¬È»ºóEditor £­>Aligh £­>Horizontal Center in Container£¬Í¬Ñù·½·¨É趨´¹Ö±¾ÓÖÐ¶ÔÆë£º

È»ºó»á·¢ÏÖDocument OutlineÓÒÉϽÇÓÐÒ»¸ö»ÆÉ«Ð¡¼ýÍ·£º

µã»÷»ÆÉ«¼ýÍ·½øÈëstructureÒ³Ãæ£¬¿ÉÒÔ¿´µ½Ò»Ð©ÌáʾÐÅÏ¢£¬¿ÉÒÔÁ˽⵱ǰ²¼¾Ö´æÔÚÎÊÌ⣬ָµ¼ÏÂÒ»²½¸Ã×öʲô¡£ÔÚviewÖп´µ½Ò»¸ö»ÆÉ«ÐéÏß¿ò£¬Õâ¸ö¿ò´ú±íÄ¿Ç°Ô¼ÊøµÃµ½µÄview£¬ÔÚstructureÒ³ÃæÓÐÒ»¸ö»ÆÉ«µÄµã£¬µã»÷ºó»áÌáʾÄãÈçºÎÐ޸ģº

Ñ¡ÔñUpdate Frame¾ÍÊǰ´ÕÕµ±Ç°µÄÔ¼ÊøÈ¥¸üÐÂview£¬Ñ¡ÔñUpdate ConstainsÊǰ´ÕÕÍÏ×§½øÈ¥viewµÄframe¸üÐÂÔ¼Êø¡£ÔÚÕâ¸öÀý×ÓÖÐUpdate FrameÊÇÎÒÃÇÐèÒªµÄ¡£È»ºóÔËÐÐÏîÄ¿¿´¿´ÊDz»ÊÇÎÒÃÇÏëÒªµÄЧ¹û°É£¡

Ò»¡¢¸ÅÒª

ͨ¹ý¶ÔiOS8½çÃæ²¼¾ÖµÄѧϰºÍ×ܽᣬ·¢ÏÖautolayout²ÅÊÇÖ÷½Ç£¬autolayoutÊÇiOS6ÒýÈëµÄÐÂÌØÐÔ£¬µ±Ê±»¹´ÖdzµÄѧϰÁËÏ£¬¿ÉÊÇûÓÐÕæÕýÓ¦Óõ½ÏîÄ¿ÖС£Ëæ×ÅiOSÉ豸³ß´çÖð½¥Ë鯬»¯£¬´¿´âµÄhard code·½Ê½UI²¼¾Ö½«»á×ßÏòËÀ½Ç£¬¶øautoresizing·½Ê½Ò²ÓÐÆä¾ÖÏÞÐÔ£¬ËùÒÔÎÞÂÛÈçºÎautolayout¶¼½«³ÉΪUI²¼¾ÖµÄÖØÒª·½Ê½¡£

ǰÁ½ÆªÒÔ·¢ÉÕÓÑÐÄ̬¶ÔiOS8½çÃæ²¼¾ÖµÄÖ÷ÒªÔªËØsize classºÍautolayout½øÐÐÁË̽Ë÷£¬·¢ÏÖÒªÍêÈ«ÕÆÎÕautolayoutÐèÒª´óÁ¿µÄʱ¼äȥʵ¼ù×ܽᡣËùÒÔÉîÈë˼¿¼autolayoutÊǺÜÓбØÒªµÄ¡£Äã¿ÉÄÜÓкÍÎÒͬÑùµÄÒÉÎÊ£¬ÈçÏ£º

1¡¢ÒÔºóÒ»ÂÉʹÓÃautolayoutÂ𣿳ýÁËÔÚstoryboardÖÐʹÓÃautolayout£¬´úÂ뷽ʽautolayoutÈçºÎʹÓã¿

2¡¢ºÃÏñºöÂÔÁËÒ»¸öÖØÒªÎÊÌ⣬¾ÍÊÇview¶¯»­ÔÚautolayoutÈçºÎʵÏÖ£¿

3¡¢autolayoutÓÐûÓоÖÏÞÐԺͽâ¾ö²»Á˵ÄÎÊÌ⣿¼æÈÝÐÔÔõôÑù£¿Ð§ÂÊÔõôÑù£¿

4¡¢¡­¡­

¶þ¡¢Ñо¿¿ªÊ¼

1¡¢Ö±½Ó˵ÒÔºó¶¼Ó¦¸ÃʹÓÃstoryboard£«autolayout¸Ð¾õÊDz»¸ºÔðµÄ˵·¨£¬¶ÁÁ˺öàÍøÂçµÄÌû×Ó£¬×îºó×ܽáÈçÏÂÇé¿öʹÓÃautolayout»áÓаïÖú£º

a µ±ÐèҪչʾµÄÄÚÈݺܶಢÇҳߴ粻¹Ì¶¨£»

b ³ÌÐòÐèÖ§³ÖÆÁÄ»Ðýת£¨Ö÷ÒªÊÇiPad³ÌÐò£¬iPhone³ÌÐòºáÆÁµÄ³¡¾°Óеã·ÇÖ÷Á÷£©£»

c ³ÌÐòͨÓÃÓÚiPhoneºÍiPad;

µ«storyboardÖÐʹÓÃautolayoutÓÐÀûÓбף¬ºÃ´¦µ±È»ÊÇ¿ÉÊÓ»¯£¬ÊµÏÖ¼òµ¥¹¦ÄܺܽÚʡʱ¼ä£¬µ«Ò²Óб׶ˣ¬ÀýÈ粻СÐÄÒÆ¶¯Ò»¸ö¿Ø¼þ¾Í»áÈÃŪÂÒÄÇÐ©Ô¼Êø¡£Å׿ªstoryboard¶øÊ¹ÓÃautolayout£¬¾ÍÐèÒª´úÂ붨ÒåÔ¼ÊøÁË£¬¶øÇÒ´úÂëÁ¿Ò²²»ÊǺܴ󡣵±appÖÐһЩviewµÄ³öÏÖʱ¸ù¾ÝÍøÂçÊý¾ÝÀ´¾ö¶¨µÄʱºò£¬´úÂ뷽ʽ¿ÉÄܸüºÏÊÊ¡£

ÏÈ¿´Ò»¸ö¼òµ¥µÄDemo£º

Àý×Ó1:н¨Ò»¸öSingle View Application templateÏîÄ¿Demo4£¬ÔÚrootViewÉÏÌí¼ÓÒ»¸öÂÌÑÕÉ«µÄview£¬Ê¹ÐÂÌí¼ÓµÄviewËĸö±ß¾àÀësuperViewËıß20µã¿í

Ч¹ûÈçͼ£º

ʹÓÃstoryboardÀ´ÊµÏÖÕâ¸öЧ¹ûºÜ¼òµ¥£¬Ñ¡ÖÐÂÌÉ«view£¬È»ºóÌí¼Ó4¸öÏà¶ÔÓÚsuperviewµÄ±ß½çÔ¼Êø£¬Ô¼ÊøµÄÊýÖµÉèÖÃΪ20£¬È»ºóUpdate Frame¾Í¿ÉÒÔÁË£¬ÒòΪ²»Çø·ÖiOSÉ豸£¬ËùÒÔsize class¿ÉÒÔÉèÖÃΪĬÈϵÄwAny hAny¡£DemoÏÂÔØ

½ÓÏÂÀ´Ê¹ÓôúÂëÀ´ÊµÏÖUI²¼¾Ö£¬Ä¿Ç°ÓÐ3ÖÖ·½·¨¿ÉÒÔʹÓ㺣¨1£©×î»ù±¾µÄÔ¼ÊøÊµÏÖ·½Ê½£»£¨2£©ÌØÊâ¸ñʽ»¯ÓïÑÔµÄÔ¼ÊøÊµÏÖ·½Ê½£»£¨3£©µÚÈý·½UIView-AutoLayout

£¨1£©×î»ù±¾µÄÔ¼ÊøÊµÏÖ·½Ê½

1.<span style="font-size:12px;">- (void)viewDidLoad {  
2. [super viewDidLoad];
3. // Do any additional setup after loading the view, typically from a nib.
4. self.view.translatesAutoresizingMaskIntoConstraints =NO;
5.
6. UIView *newView = [UIView new];
7. newView.backgroundColor = [UIColor greenColor];
8. [self.view addSubview:newView];
9.
10. newView.translatesAutoresizingMaskIntoConstraints =NO;
11.
12. NSLayoutConstraint *constraint = nil;
13.
14. constraint = [NSLayoutConstraint constraintWithItem:newView
15. attribute:NSLayoutAttributeLeading
16. relatedBy:NSLayoutRelationEqual
17. toItem:self.view
18. attribute:NSLayoutAttributeLeading
19. multiplier:1.0f
20. constant:20];
21. [self.view addConstraint:constraint];
22.
23. constraint = [NSLayoutConstraint constraintWithItem:newView
24. attribute:NSLayoutAttributeTrailing
25. relatedBy:NSLayoutRelationEqual
26. toItem:self.view
27. attribute:NSLayoutAttributeTrailing
28. multiplier:1.0f
29. constant:-20];
30. [self.view addConstraint:constraint];
31.
32. constraint = [NSLayoutConstraint constraintWithItem:newView
33. attribute:NSLayoutAttributeTop
34. relatedBy:NSLayoutRelationEqual
35. toItem:self.view
36. attribute:NSLayoutAttributeTop
37. multiplier:1.0f
38. constant:20];
39. [self.view addConstraint:constraint];
40.
41. constraint = [NSLayoutConstraint constraintWithItem:newView
42. attribute:NSLayoutAttributeBottom
43. relatedBy:NSLayoutRelationEqual
44. toItem:self.view
45. attribute:NSLayoutAttributeBottom
46. multiplier:1.0f
47. constant:-20];
48. [self.view addConstraint:constraint];
49.
50.}</span>

£¨2£©ÌØÊâ¸ñʽ»¯ÓïÑÔµÄÔ¼ÊøÊµÏÖ·½Ê½

1.<span style="font-size:12px;">- (void)viewDidLoad {  
2. [super viewDidLoad];
3. self.view.translatesAutoresizingMaskIntoConstraints =NO;
4.
5. UIView *newView = [UIView new];
6. newView.backgroundColor = [UIColor greenColor];
7. [self.view addSubview:newView];
8. newView.translatesAutoresizingMaskIntoConstraints =NO;
9.
10. NSMutableArray *constraintArray = [NSMutableArray array];
11.
12. [constraintArray addObjectsFromArray: [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[newView]-20-|"
13. options:0
14. metrics:nil
15. views:NSDictionaryOfVariableBindings(newView, self.view)]];
16. [constraintArray addObjectsFromArray: [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[newView]-20-|"
17. options:0
18. metrics:nil
19. views:NSDictionaryOfVariableBindings(newView, self.view)]];
20. [self.view addConstraints:constraintArray];
21.}</span>

£¨3£©µÚÈý·½UIView-AutoLayout

1.<span style="font-size:12px;">- (void)viewDidLoad {  
2. [super viewDidLoad];
3. self.view.translatesAutoresizingMaskIntoConstraints =NO;
4.
5. UIView *newView = [UIView new];
6. newView.backgroundColor = [UIColor greenColor];
7. [self.view addSubview:newView];
8. newView.translatesAutoresizingMaskIntoConstraints =NO;
9.
10. [newView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:20.0f];
11. [newView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:20.0f];
12. [newView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:20.0f];
13. [newView autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:20.0f];
14.}</span>

ÒÔÉÏ3ÖÖ·½Ê½¶¼ÊµÏÖÁËÎÒÃÇÏëÒªµÄЧ¹û£¬¿´À´´úÂëʵÏÖautolayoutÒ²²»ÊÇÄÇô¸´ÔÓ£¡

Àý×Ó2:ͨ¹ýÉϱßÀý×ÓÎÒÃÇʵÏÖÒ»¸ö¼òµ¥µÄUI²¼¾Ö£¬ÏÂÃæÀ´Ò»¸öÉÔ΢¸´ÔÓµãµÄ£¬°ÑÉÏһƪÖÐÌáµ½3¸öview²¼¾ÖµÄÄǸöÀý×ÓÓôúÂë²¼¾ÖʵÏÖһϣ¬µ«ÄѶÈÓÐËùÔö¼Ó£¬µ±size classÇл»µÄʱºò£¬Ò³Ãæ²¼¾Ö·¢ÉúÏàÓ¦µÄ¸Ä±ä£¬Ð§¹ûÈçͼ£º

Ê×Ïȳõʼ»¯3¸öView£º

1.<span style="font-size:12px;">- (UIView *) alView {  
2. UIView *newView = [UIView new];
3. newView.translatesAutoresizingMaskIntoConstraints =NO;
4.
5. return newView;
6.}
7.UIView *greenView = [self alView];
8.greenView.backgroundColor = [UIColor greenColor];
9.[self.view addSubview:greenView];
10.UIView *yellowView = [self alView];
11.yellowView.backgroundColor = [UIColor yellowColor];
12.[self.view addSubview:yellowView];
13.UIView *blueView = [self alView];
14.blueView.backgroundColor = [UIColor blueColor];
15.[self.view addSubview:blueView];</span>

½ÓÏÂÀ´ÊÊÅäÊúÆÁµÄÔ¼Êø£º

1.<span style="font-size:12px;">- (NSMutableArray *) 
portraitConstraints:(UIView *)greenView :(UIView *)yellowView :(UIView *)blueView  
2.{
3. NSMutableArray *constraintArray = [NSMutableArray array];
4.
5. [constraintArray addObjectsFromArray:[NSLayoutConstraint
6. constraintsWithVisualFormat:@"H:|-20-[greenView]-20- [yellowView(==greenView)]-20-|" options:0 metrics:nil
7. views:NSDictionaryOfVariableBindings(greenView, yellowView)]];
8. [constraintArray addObjectsFromArray:[NSLayoutConstraint
9. constraintsWithVisualFormat:@"V:|-20-[greenView]-20- [blueView(==greenView)]-20-|" options:0 metrics:nil
10.views:NSDictionaryOfVariableBindings(greenView, blueView)]];
11.
12. [constraintArray addObjectsFromArray:[NSLayoutConstraint
13. constraintsWithVisualFormat:@"V:|-20-[yellowView]-20- [blueView(==yellowView)]-20-|" options:0 metrics:nil
14. views:NSDictionaryOfVariableBindings(yellowView, blueView)]];
15.
16. [constraintArray addObjectsFromArray:[NSLayoutConstraint
17. constraintsWithVisualFormat:@"H:|-20-[blueView]-20-|" options:0 metrics:nil
18. views:NSDictionaryOfVariableBindings(blueView)]];
19.
20. return constraintArray;
21.}</span>

È»ºóºáÆÁµÄÔ¼Êø£º

1.<span style="font-size:12px;">- (NSMutableArray *)
 landscapeConstraints:(UIView *)greenView :(UIView *)yellowView :(UIView *)blueView  
2.{
3. NSMutableArray *constraintArray = [NSMutableArray array];
4.
5. [constraintArray addObjectsFromArray:[NSLayoutConstraint
6. constraintsWithVisualFormat:@"H:|-20-[greenView]-20- [yellowView(==greenView)]-20-|" options:0 metrics:nil
7. views:NSDictionaryOfVariableBindings(greenView, yellowView)]];
8.
9. [constraintArray addObjectsFromArray:[NSLayoutConstraint
10. constraintsWithVisualFormat:@"V:|-20-[blueView]-20- [greenView(==blueView)]-20-|" options:0 metrics:nil
11. views:NSDictionaryOfVariableBindings(greenView, blueView)]];
12.
13. [constraintArray addObjectsFromArray:[NSLayoutConstraint
14. constraintsWithVisualFormat:@"V:|-20-[blueView]-20- [yellowView(==blueView)]-20-|" options:0 metrics:nil
15. views:NSDictionaryOfVariableBindings(yellowView, blueView)]];
16.
17. [constraintArray addObjectsFromArray:[NSLayoutConstraint
18. constraintsWithVisualFormat:@"H:|-20-[blueView]-20-|" options:0 metrics:nil
19. views:NSDictionaryOfVariableBindings(blueView)]];
20.
21. return constraintArray;
22.}</span>

×îºó»¹Òª´¦ÀíÆÁÄ»Ðýת£º

1.<span style="font-size:12px;">-
 (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection  
2. withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
3.{
4. [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
5.
6. [coordinator animateAlongsideTransition:^ (id <UIViewControllerTransitionCoordinatorContext> context) {
7. if (newCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact) {
8. NSLog(@"%s----%d", __FUNCTION__, __LINE__);
9. [self.view removeConstraints:self.view.constraints];
10. [self.view addConstraints: [self landscapeConstraints:self.greenView_ :self.yellowView_ :self.blueView_]];
11. } else {
12. NSLog(@"%s----%d", __FUNCTION__, __LINE__);
13. [self.view removeConstraints:self.view.constraints];
14. [self.view addConstraints: [self portraitConstraints:self.greenView_ :self.yellowView_ :self.blueView_]];
15. }
16. [self.view setNeedsLayout];
17. } completion:nil];
18.}</span>

ÕâÑù¾ÍʵÏÖÁËÎÒÃÇÔ¤ÆÚµÄЧ¹û£¬×ܽáÏÂÀ´£¬auotlayout¾ÍÊǸøviewÌí¼Ó×ã¹»µÄÔ¼Êø£¬ÈÃviewϵͳ¿ÉÒÔ¸ù¾ÝÔ¼ÊøÀ´¼ÆËã³öÒ»¸öviewµÄframe¡£¶¯ÊÖÁ·Ï°Ò»Ï°ɣ¡

2¡¢view¶¯»­ÔÚautolayoutʵÏÖ

µ±²¼¾Ö·¢Éú¸Ä±äʱ£¬Ï൱ÓÚ¶Ô×Óview½øÐÐÖØÐ²¼¾Ö£¬¶ø×ÓviewÖØÐ²¼¾Öµ÷Óà layoutIfNeeded£¬ËùÒÔ¶¯»­¿ÉÒÔÕâÑùʵÏÖ£º

1.<span style="font-size:12px;">- (void)animateConstraints  
2.{
3. [UIView animateWithDuration:0.5 animations:^{
4. [self.view layoutIfNeeded];
5. }];
6.}</span>

GithubÉÏÒѾ­ÓÐDemoÁË£¡

3¡¢autolayoutÓÐûÓоÖÏÞÐԺͽâ¾ö²»Á˵ÄÎÊÌ⣿¼æÈÝÐÔÔõôÑù£¿Ð§ÂÊÔõôÑù£¿

autolayout¶Ôview transformsÖ§³ÖµÄ²»ºÃ£¬ÕâÀïÓÐÌû×ÓÏêϸÃèÊöÁËÕâ¸öÎÊÌâ¡£

ÖÁÓÚ¼æÈÝÐÔ£¬Ö»´ÓiOS6¾ÍÒѾ­Ìá³öÁËautolayoutµÄ¸ÅÄÏÖÔÚiOS5ϵͳ²»ÊǺܶàÁË£¬ÉõÖÁiOS6ϵͳ¶¼ÒѾ­Éý¼¶ÎªiOS7£¬Î´À´Ò»¶Îʱ¼ä´ó²¿·ÖÓû§Ó¦¸ÃÊÇʹÓÃiOS7ºÍiOS8ϵͳ£¬ËùÒÔ¼æÈÝÐÔÎÊÌâ²»»áÌ«´ó£¬µ«size classÊÇiOS8²ÅÓеĸÅÄËùÒÔ»¹ÓÐÓÐÒ»¶¨µÄÊÊÅ乤×÷Á¿¡£

ЧÂÊ»°ÌâÕâÀïÓÐÌáµ½£¬ÓÐʱ¼äÔÙϸÑо¿¡£

½áÊøÓʱ¼äºÍÌåÁ¦×ÜÊÇÓÐÏ޵쬱êÌâÊÇautolayoutÏê½â£¬¿ÉÏë´ïµ½Ïê½â»¹ÐèÒª¸ü¶àµÄʱ¼äȥʵ¼ùºÍ×ܽᣬ»¹ÓÐһЩϸ½ÚûÓÐÌåÏÖ³öÀ´£º

ÀýÈ磺

1.<span style="font-size:12px;">
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[newView]-20-|
"options:0 metrics:nil views:NSDictionaryOfVariableBindings(newView, self.view)]</span>

1¡¢ÕâÆäÖи÷¸ö²ÎÊýµÄº¬Ò壬ÁíÍâÔ¼Êø»¹ÓиöÓÅÏȼ¶µÄ¸ÅÄî

2¡¢@"H:|-20-[newView]-20-|" ÕâÖÖ¿ÉÊÓ»¯²¼¾Ö×Ö·û´®µÄº¬ÒåµÈµÈ£¬ÓпÕÔÙ²¹³äÁË£¡

   
3895 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶Ë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ÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ