{"id":4687,"date":"2013-03-02T14:30:39","date_gmt":"2013-03-02T13:30:39","guid":{"rendered":"http:\/\/www.iprog.it\/blog\/?p=4687"},"modified":"2013-03-02T14:30:39","modified_gmt":"2013-03-02T13:30:39","slug":"animazioni-con-uiimageview","status":"publish","type":"post","link":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/","title":{"rendered":"Animazioni con UIImageView"},"content":{"rendered":"<p>Per l&#8217;articolo di oggi ho scelto qualcosa che \u00e8 stato popolare in App Store nel passato ma che ancora tutt&#8217;oggi affascina alcune aplpicazioni&#8230;le &#8220;<strong>Animazioni<\/strong>&#8220;.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg\" rel=\"lightbox[4687]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4688\" alt=\"fiamma animazione\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot-166x300.jpg\" width=\"166\" height=\"300\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot-166x300.jpg 166w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg 412w\" sizes=\"auto, (max-width: 166px) 100vw, 166px\" \/><\/a><\/p>\n<p>La prima idea di applicazione \u00e8 stata iFiamma il quale era un semplice video di una fiamma girato da me. A quel tempo non avevo visto una fiamma pi\u00f9 chiara in App Store pensai che sarebbe stato bello avere una fiamma da tenere in mano ad un concerto.<\/p>\n<p>La mia prima sfida \u00e8 stata avere mio video &#8220;fiamma&#8221; ripetere senza pausa. Poi, appena ho visto <em>Crazy Lighter<\/em> mi sono chiesto: &#8220;come hanno fatto a farlo funzionare con un ciclo infinito&#8221;. Non posso dire che questo sia il modo &#8220;giusto&#8221; per farlo, ma questo far\u00e0 per noi&#8230;.almeno per le applicazioni semplice. Invece di utilizzare un video \u00e8 possibile utilizzare un UIImageView con una sequenza di immagini che girano in loop continuo.<\/p>\n<p>Ecco la funzione chiave:<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<\/p>\n<p>\/\/ creiamo la view che conterr\u00e0 l&#8217;animazione<\/p>\n<p>UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame];<\/p>\n<p>\/\/ carichiamo tutti i frame dell&#8217;animazione<\/p>\n<p>campFireView.animationImages = [NSArray arrayWithObjects:<\/p>\n<p>[UIImage imageNamed:@&quot;campFire01.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire02.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire03.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire04.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire05.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire06.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire07.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire08.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire09.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire10.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire11.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire12.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire13.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire14.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire15.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire16.gif&quot;],<br \/>\n[UIImage imageNamed:@&quot;campFire17.gif&quot;], nil];<\/p>\n<p>\/\/ tutti i frame gireranno in 1.75 secondi<br \/>\ncampFireView.animationDuration = 1.75;<\/p>\n<p>\/\/ ripetiamo l&#8217;animazione all&#8217;infinito<br \/>\ncampFireView.animationRepeatCount = 0;<\/p>\n<p>\/\/ start animazione<br \/>\n[campFireView startAnimating];<\/p>\n<p>\/\/aggiunge l&#8217;animazione alla view principale<br \/>\n[self.view addSubview:campFireView];<\/p>\n<p>[\/code]<\/p>\n<p>Il codice \u00e8 leggermente ridondante&#8230;ma \u00e8 voluto. In questo modo anche un principiante riesce a capire la logica del codice. Per gli esperti invece consiglio un <strong>for\u00a0<\/strong>progressivo per caricare le immagini nell&#8217;<strong>NSArray\u00a0<\/strong>richieste.<\/p>\n<p style=\"text-align: center;\">\u00a0<a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/bonfire.zip\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2708\" alt=\"download codice sorgente\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2012\/03\/download_esempio-300x120.png\" width=\"300\" height=\"120\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2012\/03\/download_esempio-300x120.png 300w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2012\/03\/download_esempio.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per l&#8217;articolo di oggi ho scelto qualcosa che \u00e8 stato popolare in App Store nel passato ma che ancora tutt&#8217;oggi affascina alcune aplpicazioni&#8230;le &#8220;Animazioni&#8220;. La prima idea di applicazione \u00e8 stata iFiamma il quale era un semplice video di una fiamma girato da me. A quel tempo non avevo visto&#8230; <a href=\"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":5,"featured_media":4688,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[2034,1671,2033,2035,1242],"class_list":["post-4687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-objective-c-ios","tag-animation","tag-animazione","tag-fiamma","tag-flame","tag-imageview"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Animazioni con UIImageView - iProg<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Animazioni con UIImageView - iProg\" \/>\n<meta name=\"twitter:description\" content=\"Per l&#8217;articolo di oggi ho scelto qualcosa che \u00e8 stato popolare in App Store nel passato ma che ancora tutt&#8217;oggi affascina alcune aplpicazioni&#8230;le &#8220;Animazioni&#8220;. La prima idea di applicazione \u00e8 stata iFiamma il quale era un semplice video di una fiamma girato da me. A quel tempo non avevo visto... Read more &raquo;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:site\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/\"},\"author\":{\"name\":\"Fabio\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"headline\":\"Animazioni con UIImageView\",\"datePublished\":\"2013-03-02T13:30:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/\"},\"wordCount\":346,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/03\\\/day2_ScreenShot.jpg\",\"keywords\":[\"animation\",\"animazione\",\"fiamma\",\"flame\",\"imageview\"],\"articleSection\":[\"Objective-C iOS\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/\",\"name\":\"Animazioni con UIImageView - iProg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/03\\\/day2_ScreenShot.jpg\",\"datePublished\":\"2013-03-02T13:30:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/animazioni-con-uiimageview\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/03\\\/day2_ScreenShot.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/03\\\/day2_ScreenShot.jpg\",\"width\":412,\"height\":744},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/\",\"name\":\"iProg\",\"description\":\"perch\u00e9 reinventare la ruota?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\",\"name\":\"Fabio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"caption\":\"Fabio\"},\"description\":\"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+\",\"sameAs\":[\"http:\\\/\\\/www.fabiosoft.com\",\"https:\\\/\\\/www.facebook.com\\\/devfabionisci\\\/\",\"http:\\\/\\\/it.linkedin.com\\\/in\\\/fabionisci\"],\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/author\\\/fabiosoft\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Animazioni con UIImageView - iProg","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/","twitter_card":"summary_large_image","twitter_title":"Animazioni con UIImageView - iProg","twitter_description":"Per l&#8217;articolo di oggi ho scelto qualcosa che \u00e8 stato popolare in App Store nel passato ma che ancora tutt&#8217;oggi affascina alcune aplpicazioni&#8230;le &#8220;Animazioni&#8220;. La prima idea di applicazione \u00e8 stata iFiamma il quale era un semplice video di una fiamma girato da me. A quel tempo non avevo visto... Read more &raquo;","twitter_image":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg","twitter_creator":"@iprogblog","twitter_site":"@iprogblog","twitter_misc":{"Scritto da":"Fabio","Tempo di lettura stimato":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/#article","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/"},"author":{"name":"Fabio","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"headline":"Animazioni con UIImageView","datePublished":"2013-03-02T13:30:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/"},"wordCount":346,"commentCount":0,"image":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg","keywords":["animation","animazione","fiamma","flame","imageview"],"articleSection":["Objective-C iOS"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/","url":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/","name":"Animazioni con UIImageView - iProg","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/#primaryimage"},"image":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg","datePublished":"2013-03-02T13:30:39+00:00","author":{"@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/animazioni-con-uiimageview\/#primaryimage","url":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg","contentUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/03\/day2_ScreenShot.jpg","width":412,"height":744},{"@type":"WebSite","@id":"https:\/\/www.iprog.it\/blog\/#website","url":"https:\/\/www.iprog.it\/blog\/","name":"iProg","description":"perch\u00e9 reinventare la ruota?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iprog.it\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51","name":"Fabio","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","caption":"Fabio"},"description":"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+","sameAs":["http:\/\/www.fabiosoft.com","https:\/\/www.facebook.com\/devfabionisci\/","http:\/\/it.linkedin.com\/in\/fabionisci"],"url":"https:\/\/www.iprog.it\/blog\/author\/fabiosoft\/"}]}},"views":3620,"_links":{"self":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/4687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/comments?post=4687"}],"version-history":[{"count":0,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/4687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media\/4688"}],"wp:attachment":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media?parent=4687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/categories?post=4687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/tags?post=4687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}