<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>{ radak.org } &#187; iPhone examples</title>
	<atom:link href="http://www.radak.org/category/iphone_examples/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.radak.org</link>
	<description>just another (tech) blog</description>
	<lastBuildDate>Mon, 19 Jul 2010 19:47:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iPhone segédlet 2: érintés feldolgozása, kép mentése</title>
		<link>http://www.radak.org/2010/02/13/iphone-segedlet-2-erintes-feldolgozasa-kep-mentese/</link>
		<comments>http://www.radak.org/2010/02/13/iphone-segedlet-2-erintes-feldolgozasa-kep-mentese/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 15:34:59 +0000</pubDate>
		<dc:creator>lion</dc:creator>
				<category><![CDATA[iPhone examples]]></category>

		<guid isPermaLink="false">http://www.radak.org/?p=307</guid>
		<description><![CDATA[Ez a segédlet az idő hiánya miatt inkább csak felsorolás szintű lesz, viszont az lesz benne, amit a legtöbben kérdeztek eddig:
- képernyő érintésének lekezelése (touchesBegan, touchesMoved, touchesEnded)
- kép lementése a Camera Roll -ba (UIImageWriteToSavedPhotosAlbum, drawRect)

1. A képernyő érintése (A kódot UIViewController-ben kell elhelyezni!)
 Az iPhone (és persze a Touch) készülékek multi touch-osak, ez azt jelenti, [...]]]></description>
			<content:encoded><![CDATA[<p>Ez a segédlet az idő hiánya miatt inkább csak felsorolás szintű lesz, viszont az lesz benne, amit a legtöbben kérdeztek eddig:<br />
- képernyő érintésének lekezelése (touchesBegan, touchesMoved, touchesEnded)<br />
- kép lementése a Camera Roll -ba (UIImageWriteToSavedPhotosAlbum, drawRect)<br />
<span id="more-307"></span><br />
<strong>1. A képernyő érintése <em>(A kódot UIViewController-ben kell elhelyezni!)</em></strong></p>
<ul> Az iPhone (és persze a Touch) készülékek multi touch-osak, ez azt jelenti, hogy egyszerre több érintési pontot is le tudnak kezelni.<br />
Legtöbbször elég csak az első érintéssel foglalkoznunk, most így is fogom bemutatni, viszont a minta kódrészletek alapján egyszerű lesz átírni a multi funkcióra.</ul>
<ul> Alapvetően három fontos esemény van, amivel érdemes foglalkozni:<br />
<strong><em>touchesBegan</em></strong>: az érintés kezdete<br />
Ez az esemény akkor következik be, amikor hozzáérünk a kijelzőhöz.<br />
<strong><em>touchesMoved</em></strong>: a képernyőn az ujjunk mozgása<br />
Ez egy folyamatosan frissülő esemény, amikor a képernyőn mozgatjuk az ujjunkat.<br />
<em>(Itt érdemes meggondolni, hogy milyen mintavételezéssel futtatjuk a touchesMoved-ban elhelyezett kódot, illetve hogy minél rövidebb kódot használjunk!)<br />
</em><strong><em>touchesEnded</em></strong>: az érintés vége<br />
Ez az esemény akkor következik be, ha elengedjük a kijelzőt.<br />
Ha csak egy pillanatra rábökünk a kijelzőre, akkor is a touchesBegan után ez az esemény mindig bekövetkezik!<br />
<em>(Én azt tapasztaltam, hogy ha rá kell kattintani valamire és nem sikerül elsőre eltalálni, akkor az emberek többsége a ujj mozgtásával megkeresik a megfelelő pontot és ott engedik el a kijelzőt, ezért érdemes itt feldolgozni minden olyan eseményt, ami csak egy egyszerű kattintásnak felel meg!)</em></p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>touchesBegan<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSSet <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>touches withEvent<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIEvent <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>event <span style="color: #009900;">&#123;</span>
  NSSet <span style="color: #339933;">*</span>allTouches <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>event allTouches<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az összes érintés egy tömbben</span>
  UITouch <span style="color: #339933;">*</span>touch <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>allTouches allObjects<span style="color: #009900;">&#93;</span> objectAtIndex<span style="color: #339933;">:</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az első érintés</span>
  CGPoint p <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>touch locationInView<span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span>self view<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az érintés koordinátái</span>
  NSLog<span style="color: #009900;">&#40;</span>@<span style="color: #ff0000;">&quot;A kezdeti koordináták: %f, %f &quot;</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>touchesMoved<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSSet <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>touches withEvent<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIEvent <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>event <span style="color: #009900;">&#123;</span>
  NSSet <span style="color: #339933;">*</span>allTouches <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>event allTouches<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az összes érintés egy tömbben</span>
  UITouch <span style="color: #339933;">*</span>touch <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>allTouches allObjects<span style="color: #009900;">&#93;</span> objectAtIndex<span style="color: #339933;">:</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az első érintés</span>
  CGPoint p <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>touch locationInView<span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span>self view<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az érintés koordinátái</span>
  NSLog<span style="color: #009900;">&#40;</span>@<span style="color: #ff0000;">&quot;Mozgás közben az aktuális koordináták: %f, %f &quot;</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>touchesEnded<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSSet <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>touches withEvent<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIEvent <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>event <span style="color: #009900;">&#123;</span>
  NSSet <span style="color: #339933;">*</span>allTouches <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>event allTouches<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az összes érintés egy tömbben</span>
  UITouch <span style="color: #339933;">*</span>touch <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>allTouches allObjects<span style="color: #009900;">&#93;</span> objectAtIndex<span style="color: #339933;">:</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az első érintés</span>
  CGPoint p <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>touch locationInView<span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span>self view<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az érintés koordinátái</span>
  NSLog<span style="color: #009900;">&#40;</span>@<span style="color: #ff0000;">&quot;Itt engedtem el a kijelzőt: %f, %f &quot;</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

</ul>
<p><strong>2. Kép mentése <em>(A kódot UIView-ban kell elhelyezni!)</em></strong></p>
<ul> Második AppStore-os programom az <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=297684249" target="_blank">iPaint</a> volt, amiben a megrajzolt képet ki lehet menteni a kamera albumba.<br />
A kimetés elég egyszerű, csak arra kell vigyázni, hogy a képet mentés előtt el kell forgatni, mert különben a bitmap fejjel lefelé fog bekerülni az albumba!<br />
Itt egy kicsit átírt kivonat az iPaint-ből, szerintem a kommentek elég beszédesek:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>drawRect<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>CGRect<span style="color: #009900;">&#41;</span>rect <span style="color: #009900;">&#123;</span>
	CGFloat _Color<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// piros szín</span>
	CGMutablePathRef path <span style="color: #339933;">=</span> CGPathCreateMutable<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ebben a path-ban tároljuk a megjelenítendő vonalakat, pontokat</span>
	CGContextRef context <span style="color: #339933;">=</span> UIGraphicsGetCurrentContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az aktuális rajz felület lekérdezése (alap esetben teljes képernyő)</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// kép elforgatása, hogy a camera roll-ban jó legyen</span>
	<span style="color: #666666; font-style: italic;">// ezt akkor kell megtenni, ha lementjuk a képet, különben egy if-et tegyünk elé és ne forgassuk, mert a kijelzőn is megfordul!</span>
	CGContextTranslateCTM<span style="color: #009900;">&#40;</span>context<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> self.<span style="color: #202020;">bounds</span>.<span style="color: #202020;">size</span>.<span style="color: #202020;">height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGContextScaleCTM<span style="color: #009900;">&#40;</span>context<span style="color: #339933;">,</span> <span style="color:#800080;">1.0</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color:#800080;">1.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
&nbsp;
	<span style="color: #666666; font-style: italic;">// felveszünk egy 3 pixel vastagságú piros vonalat</span>
	CGContextSetLineWidth<span style="color: #009900;">&#40;</span>context<span style="color: #339933;">,</span> <span style="color:#800080;">3.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGContextSetStrokeColor<span style="color: #009900;">&#40;</span>context<span style="color: #339933;">,</span> _Color<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGPathMoveToPoint<span style="color: #009900;">&#40;</span>path<span style="color: #339933;">,</span> nil<span style="color: #339933;">,</span> <span style="color:#800080;">5.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">5.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGPathAddLineToPoint<span style="color: #009900;">&#40;</span>path<span style="color: #339933;">,</span> nil<span style="color: #339933;">,</span> <span style="color:#800080;">100.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">100.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGContextAddPath<span style="color: #009900;">&#40;</span>context<span style="color: #339933;">,</span> path<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// kirajzoljuk a képernyőre a path tartalmát (most a piros vonal van benne)</span>
	CGContextStrokePath<span style="color: #009900;">&#40;</span>context<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// elmentjük a képet</span>
	UIGraphicsBeginImageContext<span style="color: #009900;">&#40;</span>self.<span style="color: #202020;">bounds</span>.<span style="color: #202020;">size</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGImageRef vImageRef <span style="color: #339933;">=</span> CGBitmapContextCreateImage<span style="color: #009900;">&#40;</span>context<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	CGContextDrawImage<span style="color: #009900;">&#40;</span>UIGraphicsGetCurrentContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> self.<span style="color: #202020;">bounds</span><span style="color: #339933;">,</span> vImageRef<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	UIImage <span style="color: #339933;">*</span>activeImage <span style="color: #339933;">=</span> UIGraphicsGetImageFromCurrentImageContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	UIGraphicsEndImageContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// a saveEnded saját függvény, a mentés végén meghívjuk</span>
	UIImageWriteToSavedPhotosAlbum<span style="color: #009900;">&#40;</span>activeImage<span style="color: #339933;">,</span> self<span style="color: #339933;">,</span> @selector<span style="color: #009900;">&#40;</span>saveEnded<span style="color: #339933;">:</span>didFinishSavingWithError<span style="color: #339933;">:</span> contextInfo<span style="color: #339933;">:</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">,</span> nil<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	CGContextFlush<span style="color: #009900;">&#40;</span>context<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>saveEnded<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIImage <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>image didFinishSavingWithError<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSError <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>error contextInfo<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span> <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>contextInfo<span style="color: #339933;">;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Ez akkor fut le, ha a mentés véget ért.</span>
	<span style="color: #666666; font-style: italic;">// Az error-ban megkapjuk, ha valami hiba történt.</span>
	<span style="color: #666666; font-style: italic;">// Itt érdemes értesíteni a felhasználót, hogy vége a mentésnek és itt érdemes törölni a képernyőt is!</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

</ul>
<p>Legközelebb a Shake, a Status Bar és a levél küldése lesz a téma!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.radak.org/2010/02/13/iphone-segedlet-2-erintes-feldolgozasa-kep-mentese/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>iPhone segédlet 1: UIImageView, UIAccelerometer</title>
		<link>http://www.radak.org/2010/01/07/iphone-segedlet-1-uiimageview-uiaccelerometer/</link>
		<comments>http://www.radak.org/2010/01/07/iphone-segedlet-1-uiimageview-uiaccelerometer/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 23:07:29 +0000</pubDate>
		<dc:creator>lion</dc:creator>
				<category><![CDATA[iPhone examples]]></category>

		<guid isPermaLink="false">http://blog.radak.org/?p=155</guid>
		<description><![CDATA[(Ez a bejegyzésem megjelent a szifon.com-on is.)
Az AppStore-ban megjelent alkalmazásaim alapján összeírtam néhány hasznos kódrészletet, amelyek mindig jól jöhetnek a fejlesztések során. Ezek az írások nem tutoriálok, inkább nevezném őket segédletnek.
Kezdjük az iTinker-rel. Ez egy vízmérték, ami a beépített accelerometer-t használja és a visszakapott értékek alapján két UIImageView objektumot mozgat. A tetején van egy kis [...]]]></description>
			<content:encoded><![CDATA[<p>(Ez a bejegyzésem megjelent a <a href="http://szifon.com" target="_blank">szifon.com</a>-on is.)</p>
<p>Az AppStore-ban megjelent alkalmazásaim alapján összeírtam néhány hasznos kódrészletet, amelyek mindig jól jöhetnek a fejlesztések során. Ezek az írások nem tutoriálok, inkább nevezném őket segédletnek.</p>
<p>Kezdjük az <a title="iTinker" href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=294936886" target="_blank">iTinker</a>-rel. Ez egy vízmérték, ami a beépített accelerometer-t használja és a visszakapott értékek alapján két UIImageView objektumot mozgat. A tetején van egy kis reklám csík, ahol a szöveget mozgatom. Amiről most szó lesz, az az Accelerometer  használata, valamint az UIImageView létrehozása kódból és annak mozgatása.</p>
<p><span id="more-155"></span><br />
A kódokhoz egy új View-based application template projectet hoztam létre szifon névvel. Az interface buildert ebben a leírásban nem használom, az objektumokat a példák során kódbol hozom létre.</p>
<p>Először is, hogy legyen mit mozgatnunk, létrehozunk egy kis zöld négyzetet a képernyő közepén. Én most a legegyszerűbb módon veszem fel az ehhez kellő UIImageView-t, természetesen lehet másképp is, sokkal szebben, de most nem ez a téma. <img src='http://www.radak.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Szóval a szifonViewControllet.m -ben az implementation után vegyünk fel egy UIImageViewt:</p>
<p>szifonViewController.m:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">@implementation szifonViewController
&nbsp;
UIImageView <span style="color: #339933;">*</span>szifonImageView<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidLoad <span style="color: #009900;">&#123;</span></pre></div></div>

<p>És hogy ne felejtsük el később a memóriát felszabadítani, rögtön hívjuk is meg a release-t a dealloc-ban:</p>
<p>szifonViewController.m:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>dealloc <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#91;</span>szifonImageView release<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#91;</span>super dealloc<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Most már megvan minden ahhoz, hogy a kis négyzetünket megjelenítsük:</p>
<p>szifonViewController.m:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidLoad <span style="color: #009900;">&#123;</span>
    szifonImageView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIImageView alloc<span style="color: #009900;">&#93;</span> init<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// inicializáljuk az ImageView-nkat</span>
    <span style="color: #009900;">&#91;</span>szifonImageView setFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">150.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">220.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">20.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">20.0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// képernyő közepére az x=150, y=220 pixelre kiteszünk egy 20x20-as négyzetet</span>
    <span style="color: #009900;">&#91;</span>szifonImageView setBackgroundColor<span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span>UIColor greenColor<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// beállítjuk a négyzet hátterét zöldre</span>
    <span style="color: #009900;">&#91;</span>self.<span style="color: #202020;">view</span> addSubview<span style="color: #339933;">:</span>szifonImageView<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// megjelenítjük az aktuális View-n</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Létrehoztuk a négyzetet, most kezdjük el mozgatni!</p>
<p>Az accelerometer használatához szükségünk van az UIAccelerometerDelegate-re, hogy az alkalmazásunk megkapja a készülék mozgatásakor az elmozdulás mértékét.</p>
<p>Ehhez a ViewController headerjében az interface definícióját módosítanunk kell az alábbiak szerint:</p>
<p>szifonViewController.h:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">@interface szifonViewController <span style="color: #339933;">:</span> UIViewController  <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>majd hozzá kell adnunk a delegálás elcsípéséhez a következőt:</p>
<p>szifonViewController.h:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>accelerometer<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAccelerometer <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>accelerometer didAccelerate<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAcceleration <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>acceleration<span style="color: #339933;">;</span></pre></div></div>

<p>Be kell állítanunk az accelerometer delegálásának a tulajdonságait:</p>
<p>szifonViewController.m -ben a ViewDidLoad-ban a négyzet megjelenítése után szúrjuk be ezt a két sort:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIAccelerometer sharedAccelerometer<span style="color: #009900;">&#93;</span> setUpdateInterval<span style="color: #339933;">:</span><span style="color:#800080;">0.1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 100ms-enként jön az adat, hogy mi az elmozdulás értéke</span>
<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIAccelerometer sharedAccelerometer<span style="color: #009900;">&#93;</span> setDelegate<span style="color: #339933;">:</span>self<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ezzel indítjuk a delegálást</span></pre></div></div>

<p>Most már kapjuk az értékeket, már csak fel kell dolgoznunk azokat és mozgatni a négyzetünket.</p>
<p>szifonViewController.m:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>accelerometer<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAccelerometer <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>accelerometer didAccelerate<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAcceleration <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>acceleration <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// az x, y, z értékeket az accelereometer objektum tartalmazza</span>
    <span style="color: #666666; font-style: italic;">// mi most csak az x és y-al foglalkozunk</span>
    <span style="color: #666666; font-style: italic;">// Mivel az érték -1 és +1 között változik, az elmozdításhoz 20-as szorzót használtam,</span>
    <span style="color: #666666; font-style: italic;">// ez azt jelenti, hogy legkisebb elmozdulás 2 pixel, a legnagyobb 20 pixel, attól függ, mennyire döntjük meg a készülékünket</span>
&nbsp;
    szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>acceleration.<span style="color: #202020;">y</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az y elmozdulás alapján mozgatjuk a négyzetet</span>
    szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>acceleration.<span style="color: #202020;">x</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az x elmozdulás alapján mozgatjuk a négyzetet</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// ez itt néhány ellenőrzés, hogy ne tudjon eltűnni a négyzetünk a kijelzőről; ha nagyon le akarna mászni, egyszerűen visszatesszük a szélére</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.0</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000dd;">320</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">300.0</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> <span style="color:#800080;">0.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000dd;">480</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> <span style="color:#800080;">460.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ha mindnet jól csináltunk, a zöld négyzet a készülékünk mozgatásával mozogni fog a kijelzőn.</p>
<p><strong>Összefoglalva a teljes kód:</strong></p>
<p><em>szifonViewController.h:</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#import &lt;UIKit/UIKit.h&gt;</span>
&nbsp;
@interface szifonViewController <span style="color: #339933;">:</span> UIViewController  <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>accelerometer<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAccelerometer <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>accelerometer didAccelerate<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAcceleration <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>acceleration<span style="color: #339933;">;</span>
&nbsp;
@end</pre></td></tr></table></div>

<p><em><strong>szifonViewController.m:</strong></em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#import &quot;szifonViewController.h&quot;</span>
&nbsp;
@implementation szifonViewController
UIImageView <span style="color: #339933;">*</span>szifonImageView<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidLoad <span style="color: #009900;">&#123;</span>
    szifonImageView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIImageView alloc<span style="color: #009900;">&#93;</span> init<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// inicializáljuk az ImageView-nkat</span>
    <span style="color: #009900;">&#91;</span>szifonImageView setFrame<span style="color: #339933;">:</span>CGRectMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">150.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">220.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">20.0</span><span style="color: #339933;">,</span> <span style="color:#800080;">20.0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// képernyő közepére az x=150, y=220 pixelre kiteszünk egy 20x20-as négyzetet</span>
    <span style="color: #009900;">&#91;</span>szifonImageView setBackgroundColor<span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span>UIColor greenColor<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// beállítjuk a négyzet hátterét zöldre</span>
    <span style="color: #009900;">&#91;</span>self.<span style="color: #202020;">view</span> addSubview<span style="color: #339933;">:</span>szifonImageView<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// megjelenítjük az aktuális View-n</span>
    <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIAccelerometer sharedAccelerometer<span style="color: #009900;">&#93;</span> setUpdateInterval<span style="color: #339933;">:</span><span style="color:#800080;">0.1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 100ms-enként jön az adat, hogy mi az elmozdulás értéke</span>
    <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UIAccelerometer sharedAccelerometer<span style="color: #009900;">&#93;</span> setDelegate<span style="color: #339933;">:</span>self<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ezzel indítjuk a delegálást</span>
    <span style="color: #009900;">&#91;</span>super viewDidLoad<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>accelerometer<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAccelerometer <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>accelerometer didAccelerate<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>UIAcceleration <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>acceleration <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// az x, y, z értékeket az accelereometer objektum tartalmazza</span>
    <span style="color: #666666; font-style: italic;">// mi most csak az x és y-al foglalkozunk</span>
    <span style="color: #666666; font-style: italic;">// Mivel az érték -1 és +1 között változik, az elmozdításhoz 20-as szorzót használtam,</span>
    <span style="color: #666666; font-style: italic;">// ez azt jelenti, hogy legkisebb elmozdulás 2 pixel, a legnagyobb 20 pixel, attól függ, mennyire döntjük meg a készülékünket</span>
    szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>acceleration.<span style="color: #202020;">y</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az y elmozdulás alapján mozgatjuk a négyzetet</span>
    szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>acceleration.<span style="color: #202020;">x</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// az x elmozdulás alapján mozgatjuk a négyzetet</span>
    <span style="color: #666666; font-style: italic;">// ez itt néhány ellenőrzés, hogy ne tudjon eltűnni a négyzetünk a kijelzőről; ha nagyon le akarna mászni, egyszerűen visszatesszük a szélére</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.0</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000dd;">320</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span><span style="color:#800080;">300.0</span><span style="color: #339933;">,</span> szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> <span style="color:#800080;">0.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">y</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000dd;">480</span><span style="color: #009900;">&#41;</span> szifonImageView.<span style="color: #202020;">center</span> <span style="color: #339933;">=</span> CGPointMake<span style="color: #009900;">&#40;</span>szifonImageView.<span style="color: #202020;">center</span>.<span style="color: #202020;">x</span><span style="color: #339933;">,</span> <span style="color:#800080;">460.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>didReceiveMemoryWarning <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#91;</span>super didReceiveMemoryWarning<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidUnload <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>dealloc <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#91;</span>szifonImageView release<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#91;</span>super dealloc<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
@end</pre></td></tr></table></div>

<p>Ha mindent jól csináltál, ilyen lesz az eredmény:<br />
<a href="http://blog.radak.org/wp-content/uploads/2010/01/Picture-1-e1262857987137.png"><img class="alignnone size-full wp-image-206" title="Picture 1" src="http://blog.radak.org/wp-content/uploads/2010/01/Picture-1-e1262857987137.png" alt="" width="149" height="224" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radak.org/2010/01/07/iphone-segedlet-1-uiimageview-uiaccelerometer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
