{"id":420,"date":"2011-10-11T21:08:19","date_gmt":"2011-10-11T19:08:19","guid":{"rendered":"http:\/\/www.onemancrew.org\/tanis\/?p=420"},"modified":"2011-10-11T21:08:19","modified_gmt":"2011-10-11T19:08:19","slug":"gestione-rotazione-dei-device-ios","status":"publish","type":"post","link":"https:\/\/www.onemancrew.org\/tanis\/archives\/2011\/10\/11\/gestione-rotazione-dei-device-ios\/","title":{"rendered":"Gestione rotazione dei device iOS"},"content":{"rendered":"<p><img loading=\"lazy\" class=\"alignleft size-full wp-image-421\" style=\"border-style: initial; border-color: initial;\" title=\"dab4c_xcode\" src=\"http:\/\/www.onemancrew.org\/tanis\/wp-content\/uploads\/2011\/10\/dab4c_xcode.png\" alt=\"\" width=\"256\" height=\"256\" srcset=\"https:\/\/www.onemancrew.org\/tanis\/wp-content\/uploads\/2011\/10\/dab4c_xcode.png 256w, https:\/\/www.onemancrew.org\/tanis\/wp-content\/uploads\/2011\/10\/dab4c_xcode-150x150.png 150w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/><\/p>\n<p>Ultimamente mi sono dovuto scontrare, per l&#8217;ennesima volta, nel delirio del cambio di orientamento dei device iOS. Per quanto in Apple si siano dati da fare per semplificare la vita agli sviluppatori, questo tema \u00e8 ancora un buco nero. Ci sono diversi sistemi per gestire il cambio di orientamento, di cui uno<br \/>\nChiaramente, il mio obiettivo \u00e8 di scrivere meno codice possibile, utilizzare Interface Builder per permettere ai designer di modificare la geometria delle interfacce senza dover intervenire sul codice, ridurre al minimo i calcoli delle posizioni degli elementi all&#8217;interno dei controller.ufficiale e presentato da Apple come esempio sul sito developer. Il problema \u00e8 che, per quanto sia ufficiale, non soddisfa le mie esigenze. Oltre alla rotazione, ho anche il problema di dover presentare interfacce diverse a seconda dell&#8217;orientamento e del device (iPhone o iPad).<\/p>\n<p>Alla fine ho optato per un sistema con un UIViewController di base da cui derivano i vari controller portrait e landscape. I controller sono tutti agganciati ad un UINavigationController che si prende cura di mandare i messaggi di willRotate e didRotate ai vari controller collegati senza che dobbiamo gestirceli noi a mano.<\/p>\n<p>Il controller di base contiene anche tutti gli outlet che vengono collegati in IB agli oggetti disegnati nell&#8217;interfaccia, cos\u00ec possiamo tenere il codice di gestione di azioni e interazione con gli oggetti al minimo.<br \/>\nPer chi volesse vedere come funziona questo sistema, ho aperto un repository su GitHub chiamato <a href=\"https:\/\/github.com\/tanis2000\/RotationExample\">RotationExample<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ultimamente mi sono dovuto scontrare, per l&#8217;ennesima volta, nel delirio del cambio di orientamento dei device iOS. Per quanto in Apple si siano dati da fare per semplificare la vita agli sviluppatori, questo tema \u00e8 ancora un buco nero. Ci sono diversi sistemi per gestire il cambio di orientamento, di cui uno Chiaramente, il mio [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":421,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[266,217,204,70,265,263,262,264,185],"_links":{"self":[{"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/posts\/420"}],"collection":[{"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/comments?post=420"}],"version-history":[{"count":2,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/posts\/420\/revisions"}],"predecessor-version":[{"id":423,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/posts\/420\/revisions\/423"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/media\/421"}],"wp:attachment":[{"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/media?parent=420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/categories?post=420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.onemancrew.org\/tanis\/wp-json\/wp\/v2\/tags?post=420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}