<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkMGQHg6eip7ImA9WhRaE0Q.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549</id><updated>2012-02-16T04:13:41.612-08:00</updated><category term="view to image" /><category term="Table Controller" /><category term="core data" /><category term="list library" /><category term="selectors" /><category term="wall paper editor" /><category term="icons" /><category term="documentation" /><category term="workflow" /><category term="bugs" /><category term="apple" /><category term="keyboard helper" /><category term="ipad" /><category term="filling views" /><category term="Rejected" /><category term="submission" /><category term="Categories" /><category term="otter box" /><category term="overlays" /><category term="Math Drill" /><category term="sight words" /><category term="Code" /><category term="iphone" /><category term="feedback" /><category term="tips" /><category term="NSInternalInconsistencyException" /><category term="Objective-C" /><category term="Mac" /><category term="sugarsync" /><category term="Debugging" /><category term="App Store" /><category term="performance" /><category term="uiview" /><category term="crosslinks" /><category term="Animation" /><category term="static library" /><category term="callbacks" /><category term="flash cards" /><category term="UINavigationController" /><category term="Ad Viewer" /><category term="tricks" /><category term="Fetch Controller" /><category term="view management" /><category term="ebooks" /><category term="taps" /><category term="apple developer program" /><category term="Selection" /><category term="Subversion" /><category term="NSPredicate" /><category term="XCode 4" /><category term="wallpaper editor" /><category term="toolbars" /><category term="views" /><category term="backups" /><category term="useful classes" /><category term="Sliders" /><category term="selector not found" /><category term="nib" /><category term="dynamic toolbar with tap" /><category term="blog" /><category term="delegates" /><category term="debuging" /><category term="Refactoring" /><category term="XCode" /><category term="touches" /><category term="Requirements" /><category term="kindle" /><category term="JLTableContainer" /><category term="strategy pattern" /><category term="lending" /><category term="ap store" /><category term="universal apps" /><category term="Properties" /><category term="UIImageView" /><category term="debugging not loading nib" /><category term="view controller" /><category term="iad" /><category term="generic routines" /><category term="choices" /><category term="dropbox" /><category term="marketing" /><category term="framework" /><category term="nook" /><category term="navigation controller" /><title>iPhone Development Experiences</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/IphoneDevelopmentExperiences" /><feedburner:info uri="iphonedevelopmentexperiences" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUQNQH48fyp7ImA9WhdUF0U.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-1672462486889562633</id><published>2011-10-04T19:56:00.000-07:00</published><updated>2011-10-04T19:56:31.077-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-04T19:56:31.077-07:00</app:edited><title>App Code Beta</title><content type="html">One of the difficulties that I've had with XCode is that the SDE is not as slick as I'm used to.  When combined with some of the peculiarities of the language, it is more painful to code in this than in Eclipse for Java or Visual Studio for C# (especially with the Resharper plugin).

I've found that JetBrains, the creators of IntellJ and Resharper have created a &lt;a href="http://www.jetbrains.com/objc/index.jsp"&gt;SDE called AppCode &lt;/a&gt;for Objective C.  I've tried it and it is far easier to use for most things than XCode (either 3 or 4).  Right now the Beta is free, and you can sign up for a 50% discount on the final product.

&lt;br /&gt;
&lt;br /&gt;
I highly recommend it. &amp;nbsp;The smart code completion is far better, it can automatically make properties for you, it has far better refactoring, and navigation.&lt;br /&gt;
&lt;br /&gt;
The only downsides are that it doesn't support interface builder, or modifying a SQL-Lite database. &amp;nbsp;Also if you want to modify your project settings you still need to boot up XCode.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-1672462486889562633?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3ng17zX4SG9MmAYB3gSbetWSnhQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3ng17zX4SG9MmAYB3gSbetWSnhQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3ng17zX4SG9MmAYB3gSbetWSnhQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3ng17zX4SG9MmAYB3gSbetWSnhQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/PuUPLUMwFvY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/1672462486889562633/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2011/10/app-code-beta.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1672462486889562633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1672462486889562633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/PuUPLUMwFvY/app-code-beta.html" title="App Code Beta" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2011/10/app-code-beta.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYBSHY7fyp7ImA9WhdUF0U.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6055555129187485417</id><published>2011-10-04T19:52:00.000-07:00</published><updated>2011-10-04T19:52:39.807-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-04T19:52:39.807-07:00</app:edited><title>XCode 4 static libraries in a project.</title><content type="html">I'm actually trying to get back into IOS development.  I was attempting to get my static library to work properly in XCode 4.  Apple does not make it easy to do this.

I found a really good blog article that helps with this.  &lt;a href="http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/"&gt;Using Open Source Static Libraries in XCode 4&lt;/a&gt;.  While written for open source libraries, it works great with my personal static library as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6055555129187485417?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-bR_FoVw345TLGiRc-XhvRMiA4w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-bR_FoVw345TLGiRc-XhvRMiA4w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-bR_FoVw345TLGiRc-XhvRMiA4w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-bR_FoVw345TLGiRc-XhvRMiA4w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/zvFlxN8_7fw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6055555129187485417/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2011/10/xcode-4-static-libraries-in-project.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6055555129187485417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6055555129187485417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/zvFlxN8_7fw/xcode-4-static-libraries-in-project.html" title="XCode 4 static libraries in a project." /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2011/10/xcode-4-static-libraries-in-project.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMGRnY8fSp7ImA9WhZTFEs.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-1568761659213341730</id><published>2011-03-18T09:40:00.000-07:00</published><updated>2011-03-18T09:40:27.875-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-18T09:40:27.875-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lending" /><category scheme="http://www.blogger.com/atom/ns#" term="kindle" /><category scheme="http://www.blogger.com/atom/ns#" term="nook" /><category scheme="http://www.blogger.com/atom/ns#" term="ebooks" /><title>Best eBook Lending Service</title><content type="html">With the recent establishment of the ability to lend ebooks with the Kindle and the Nook, several 'swap clubs' have sprung up around the net where you can make your ebooks available for lending and borrow ebooks from others.&amp;nbsp; I've tried three of the services and have found that they all work, although the last one I've tried has been FAR&amp;nbsp; more successful. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://booklending.com/"&gt;Booklending.com&lt;/a&gt; (formly Kindlelending.com until Amazon complained about their trademark). This is a pretty good service.&amp;nbsp; It operations on a 'push' principle.&amp;nbsp; When you log in you register what books you are interested in, and then wait for someone to send them to you.&amp;nbsp;&amp;nbsp; When you make your books available it will show if anyone is waiting for those books and offer up to 3 people that you can send to.&lt;br /&gt;
&lt;br /&gt;
It has a limited ability to see which books are available for lending, but no real strong search capabilities.&amp;nbsp;&amp;nbsp; I've received several books from here and it works OK. &lt;br /&gt;
&lt;br /&gt;
I've also lent books from this site.&amp;nbsp; When you lend a book it opens Amazon in a frame and you can then use the Amazon lending capabilities to send your book out.&amp;nbsp; When you list the books you have available you have to manually enter them.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.lendink.com/"&gt;http://www.lendink.com/&lt;/a&gt;&amp;nbsp; Lendink is another site, it has an advantage in that you can see what books are available and search by genre.&amp;nbsp; It operates on a 'pull' principle.&amp;nbsp; When you see a book you are interested in you can click it and the site will send an email to the owner of the book that you are interested in lending it.&lt;br /&gt;
I've also lent books through this service.&amp;nbsp; It operates very similarly to the booklending.com site.&amp;nbsp; When you list the books you have available you have to manually enter them.&lt;br /&gt;
&lt;br /&gt;
This site supports both Nook and kindle books.&lt;br /&gt;
&lt;br /&gt;
Finally the last and best site is:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.lendle.me/"&gt;lendle.me&lt;/a&gt;&lt;br /&gt;
This is the latest site I've tried.&amp;nbsp; Unlike the other sites you have to enter your books before you can borrow from it.&amp;nbsp; It provides a bookmark that runs a script on your Amazon page to parse out which books you have available.&amp;nbsp; It then saves all of those and figures out which ones are lendable.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
It gives you two credits (loans) to start, and then as you register books it gives you more.&amp;nbsp; I had 10 credits after I parsed out my books.&lt;br /&gt;
&lt;br /&gt;
For the previous sites you want to request many books, you don't have a good hit ratio.&amp;nbsp; However for lendle.me I had a 7 out of 10 books lent to me in less than 48 hours, I had requested several because based on the other sites I expected to only get 2-3 hits with 10 requests.&amp;nbsp; Lendle.me seems to have a wider selection of books (probably because it parses them from Amazon).&amp;nbsp;&amp;nbsp; I&amp;nbsp;can generally read a book in 2 days, so I'm going to have to stop requesting just to keep up.&lt;br /&gt;
&lt;br /&gt;
If you are borrowing Kindle books, I recommend &lt;a href="http://lendle.me/"&gt;lendle.me&lt;/a&gt;, if you are borrowing Nook books then &lt;a href="http://lendink.com/"&gt;lendink&lt;/a&gt; is your choice.&amp;nbsp; However it doesn't hurt to be on all 3 sites to maximize your borrowing and lending chances.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
I've been using the lending services to borrow books that I would check out of a library.&amp;nbsp; I've added some new authors to my 'buy list' after doing so.&amp;nbsp;&amp;nbsp; It stretches my dollars and makes me more likely to take a chance, you can borrow the first book in a series and see if you want to be spending your money on the rest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-1568761659213341730?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pPaKDgfumZg66_zS2dtZmoI0h7c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pPaKDgfumZg66_zS2dtZmoI0h7c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pPaKDgfumZg66_zS2dtZmoI0h7c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pPaKDgfumZg66_zS2dtZmoI0h7c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/21gDB2YBz3c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/1568761659213341730/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2011/03/best-ebook-lending-service.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1568761659213341730?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1568761659213341730?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/21gDB2YBz3c/best-ebook-lending-service.html" title="Best eBook Lending Service" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2011/03/best-ebook-lending-service.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYBSX85fip7ImA9WhZTEU4.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-1856809123647445840</id><published>2011-03-14T12:49:00.000-07:00</published><updated>2011-03-14T12:49:18.126-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-14T12:49:18.126-07:00</app:edited><title>Application not picking up changes in a static library</title><content type="html">I recently wasted a lot of time, I was attempting to modify a class in a static library, and no matter what I did, it would NOT work. &amp;nbsp; Eventually I added some log statements and they didn't show up, although old ones did.&lt;br /&gt;
&lt;br /&gt;
I found that when I made modifications to my static library the main application was not relinked. &lt;br /&gt;
&lt;br /&gt;
For my WallPaperEdit application, I found that the main executable was WallPaperEdit in the directory&lt;br /&gt;
&lt;br /&gt;
/Users/myusername/Library/Developer/Xcode/DerivedData/WallPaperEDit_randomLetters/Build/Products/Debug-iphonesimulator/WallPaperEdit.app&lt;br /&gt;
&lt;br /&gt;
When I made a change in my static library, it was not being picked up for this, and it was not being relinked. &amp;nbsp;Even doing a clean did not work.&lt;br /&gt;
&lt;br /&gt;
If I modify a file in my main library, then it recompiles and relinks this, and my new change is picked up. &amp;nbsp;I'm going to use that as a workaround for now, and then try and find the build setting that makes this behavior as it properly does.&lt;br /&gt;
&lt;br /&gt;
While XCode4 says it supports automated dependencies between multiple projects, I've found that it can sometimes be painful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-1856809123647445840?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/smJFUBF-ArmQldbS_6SKZOz_e1E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/smJFUBF-ArmQldbS_6SKZOz_e1E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/smJFUBF-ArmQldbS_6SKZOz_e1E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/smJFUBF-ArmQldbS_6SKZOz_e1E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/KB38kGF0W7c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/1856809123647445840/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2011/03/application-not-picking-up-changes-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1856809123647445840?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1856809123647445840?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/KB38kGF0W7c/application-not-picking-up-changes-in.html" title="Application not picking up changes in a static library" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2011/03/application-not-picking-up-changes-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8HRn4yeyp7ImA9Wx9UGE8.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-7000875451080161862</id><published>2011-02-15T19:27:00.000-08:00</published><updated>2011-02-15T19:27:17.093-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-15T19:27:17.093-08:00</app:edited><title>Apple's new subscription model.</title><content type="html">I'm seeing a lot of reports on Apple's new subscription model. &amp;nbsp;Providers that provide content that is purchased outside the app store now has to provide a 'in app purchase' to get that material, costing 30%. &amp;nbsp; This is a killer, move on Apple's part, and if they enforce it you can say goodbye to Kindle, Nook, Netflix, etc... &amp;nbsp;The companies can't afford to take this cut.&lt;br /&gt;
&lt;br /&gt;
With the agency model for ebooks, 5 out of 6 of the big publishers in the US now set their prices for their ebooks. &amp;nbsp;When Amazon sells one of these ebooks, it gets 30% of the list price, and the publisher gets 70% of the list price. &amp;nbsp;By the contract Amazon can NOT change this price.&lt;br /&gt;
&lt;br /&gt;
If they were to make this available as an in-app purchase, then Apple would get 30%, the publisher would get 70%, and Amazon would get nothing. &amp;nbsp;Obviously Amazon will not go for this.&lt;br /&gt;
&lt;br /&gt;
I wonder if Apple is attempting to push all other ebook providers off the App Store, or if it is just rattling cages. &amp;nbsp; If they do push all other ebook providers off, then I might have to reconsider using the Apple Ecosystem. &amp;nbsp; I have NO desire to use iBooks, and will never use it. &amp;nbsp; It ties me to one device, and Apple has just shown how unwise that is. &lt;br /&gt;
&lt;br /&gt;
This seems like a foolish move now that serious iPhone contenders are on the horizon, between Android, and now Windows 7 (with the Nokia deal), IOS could have some troubles. &amp;nbsp;I would rather be using the Windows 7 toolset instead of IOS, however the market is not currently there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-7000875451080161862?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qwOBJShCABAAcLvfnJ4mP0wW5Rc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qwOBJShCABAAcLvfnJ4mP0wW5Rc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qwOBJShCABAAcLvfnJ4mP0wW5Rc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qwOBJShCABAAcLvfnJ4mP0wW5Rc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/WAhlz8gIn2U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/7000875451080161862/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2011/02/apples-new-subscription-model.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/7000875451080161862?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/7000875451080161862?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/WAhlz8gIn2U/apples-new-subscription-model.html" title="Apple's new subscription model." /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2011/02/apples-new-subscription-model.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANQ30_eip7ImA9Wx9RFkw.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-2045838261571833080</id><published>2010-12-17T12:29:00.000-08:00</published><updated>2010-12-17T12:29:52.342-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-17T12:29:52.342-08:00</app:edited><title>Side Track: Unreal Development Kit</title><content type="html">OK, I've been working (slowly) over the last month on refactoring my flow, but I'm not ready to post stuff.&amp;nbsp; However I decided that I was going to download the &lt;a href="http://www.udk.com/"&gt;Unreal Development Kit&lt;/a&gt; and see if I could get 'Epic Citadel' to compile and install my own version.&amp;nbsp; Step 1 is to boot up a windows box and download the development kit.&amp;nbsp;&amp;nbsp; It's a 1.1 GB download.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The UDK is Windows only, but interestingly enough it can send data directly to your iphone for testing and running.&amp;nbsp; For submission to the developer program you need to use your Mac.&amp;nbsp; I'm not sure if that means you can't use Objective-C stuff directly in it, probably not.&lt;br /&gt;
&lt;br /&gt;
It was trivially easy to get stuff running on the iPhone.&amp;nbsp; I installed the application, started the Mobile Editor, and used their sample map.&amp;nbsp;&amp;nbsp; I then ran play install on iOS device, and it prompted me for my provisioning certificate, my developer certificate and for some plist information.&amp;nbsp; I just moved those over from my mac, and boom I had a level running on my iPhone 4.&lt;br /&gt;
&lt;br /&gt;
I don't have much knowledge of the unreal editor, I played with the very first version when Unreal first came out.&amp;nbsp; It looks like a non-trivial learning curve, however for those with skills creating models, textures and scripting, I think getting a really nice game has just become a lot easier.&amp;nbsp; I look forward to a good game in the Epic Citadel map.&amp;nbsp; (If I read their licensing terms correctly, you can use those models in your game, your milage may vary, I'm not a lawyer.)&amp;nbsp;&amp;nbsp; (Infinity blade is OK, but not my style of game).&lt;br /&gt;
&lt;br /&gt;
Epic did a great job of getting a third party editor working with iOS.&amp;nbsp; I'm sure there are pitfalls in moving forward with a real game, but the first impressions are VERY impressive.&lt;br /&gt;
(Epic requires the following text when writing documentation about using the Unreal Development Kit, since they are providing this for FREE, I think it's quite reasonable to comply with their legal requirements.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note this blog post is not endorsed by Epic games.&amp;nbsp; &lt;br /&gt;
Unreal Development Kit (UDK) © 2009, Epic Games, Inc. Epic, Epic Games, Gears of War, Gears of War 2, Unreal, AnimSet Viewer, AnimTree Editor, Unreal Cascade, Unreal Content Browser, Unreal Development Kit, Unreal Editor, Unreal Engine, Unreal Kismet, Unreal Lightmass, Unreal Matinee, Unreal PhAT, UnrealScript and Unreal Tournament are trademarks or registered trademarks of Epic Games, Inc. in the United States of America and elsewhere. All other trademarks are the pr&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-2045838261571833080?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A6KdHVtBuwxotQGEhKq7eR-vwXU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A6KdHVtBuwxotQGEhKq7eR-vwXU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A6KdHVtBuwxotQGEhKq7eR-vwXU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A6KdHVtBuwxotQGEhKq7eR-vwXU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/obAL8IPqdAU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/2045838261571833080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/12/side-track-unreal-development-kit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/2045838261571833080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/2045838261571833080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/obAL8IPqdAU/side-track-unreal-development-kit.html" title="Side Track: Unreal Development Kit" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/12/side-track-unreal-development-kit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUENRnc-cCp7ImA9Wx5bEEs.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6795210948205827126</id><published>2010-10-25T21:34:00.000-07:00</published><updated>2010-10-25T21:34:57.958-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-25T21:34:57.958-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dropbox" /><category scheme="http://www.blogger.com/atom/ns#" term="sugarsync" /><category scheme="http://www.blogger.com/atom/ns#" term="backups" /><title>Cloud Storage Dropbox vs Sugarsync</title><content type="html">Recenlty I started thinking about backups and decided to use cloud storage to help keep things up to date. &amp;nbsp;Right now I'm testing two services out to see how they work. &amp;nbsp;I'm using the free version, source is pretty small, but might upgrade to a paid service if its good enough.&lt;br /&gt;
&lt;br /&gt;
The two services I'm testing are Dropbox and sugarsync.&lt;br /&gt;
&lt;br /&gt;
Dropbox&lt;br /&gt;
Dropbox is one of the most common ones out there. &amp;nbsp;You establish a single directory on your system and then the dropbox application will monitor that directory and sync any files found to the cloud and other computers.&lt;br /&gt;
&lt;br /&gt;
It's easy to set up, and comes with a 2GB initial size.&lt;br /&gt;
&lt;br /&gt;
If I refer someone to dropbox both that person and myself get an extra 250 MB of space (up to an 8GB max). &amp;nbsp; I should have found a referral link before signing up.&lt;br /&gt;
&lt;br /&gt;
If you want a referral link, just follow:&lt;br /&gt;
&lt;a href="http://www.dropbox.com/referrals/NTEzODMxNTQ5OQ"&gt;Dropbox referal link&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The iphone client is pretty nice and will even let you view your source files.&lt;br /&gt;
&lt;br /&gt;
Sugarsync&lt;br /&gt;
This got good reviews and has one major advantage over dropbox. &amp;nbsp;It can share ANY directory on your system. &amp;nbsp;This is pretty good. &amp;nbsp;In addition if some one is referral to the service by you, you and that person get 500 mb of extra space (not bad) really. &amp;nbsp;2 GB for free out of the box, another 500 mb for playing with it a little bit, and then one extra person signing up for a free account gives you 500 mb, with no upper limit. &lt;br /&gt;
&lt;br /&gt;
If you are want to try it out follow this link:&lt;br /&gt;
&lt;a href="https://www.sugarsync.com/referral?rf=eaa4gqn26jxfx"&gt;Sugarsync referral&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I wish I had found a referral link prior to signing up, it would have been extra space :)&lt;br /&gt;
&lt;br /&gt;
Right now I'm trying out both DropBox and Sugarsync on the same files in the same directory. &amp;nbsp;This is a nice dual redundant backup, and I can see how they work for me.&lt;br /&gt;
&lt;br /&gt;
The iphone client lets you stream music, and view photos but doesn't let you view other files like DropBox does. &amp;nbsp; I like the space and flexibility however.&lt;br /&gt;
&lt;br /&gt;
The nice things about these is the service runs in the background and updates your files as you change them. &amp;nbsp;They can even track history for you. &amp;nbsp;Painless source control. &amp;nbsp;Of course I would still run a real repository, but this is a good 'backup'.&lt;br /&gt;
&lt;br /&gt;
I plan to run both services in parallel for a while to see which I like better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6795210948205827126?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ApW_Bw3EHWkGKpqk8tgx5zlSmlU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ApW_Bw3EHWkGKpqk8tgx5zlSmlU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ApW_Bw3EHWkGKpqk8tgx5zlSmlU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ApW_Bw3EHWkGKpqk8tgx5zlSmlU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/eIDUIO7iuW8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6795210948205827126/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/10/cloud-storage-dropbox-vs-sugarsync.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6795210948205827126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6795210948205827126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/eIDUIO7iuW8/cloud-storage-dropbox-vs-sugarsync.html" title="Cloud Storage Dropbox vs Sugarsync" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/10/cloud-storage-dropbox-vs-sugarsync.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYNQ348cCp7ImA9Wx5XFkQ.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6875102669221627432</id><published>2010-09-16T20:29:00.000-07:00</published><updated>2010-09-16T20:29:52.078-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-16T20:29:52.078-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="UIImageView" /><category scheme="http://www.blogger.com/atom/ns#" term="Debugging" /><category scheme="http://www.blogger.com/atom/ns#" term="Code" /><title>Capturing part of an image from a UIImageView</title><content type="html">I have a set of views over a picture and I wanted to pick the part of the picture under the views. &amp;nbsp;I found &lt;a href="http://stackoverflow.com/questions/2635371/how-to-crop-the-uiimage/3353844#3353844"&gt;some code on stack overflow&lt;/a&gt; that helped me extract the part of the photo I wanted, however when I used it, it seemed to be scaled improperly and showed up strangely.&lt;br /&gt;
&lt;br /&gt;
I finally figured out that the reason was because the UIImageView scales the image, and I was using the view coordinates of the part I was interested to try and get the subimage from the picture. &amp;nbsp;This means that when I'm choosing a number from 0-320 in the view and grabbing those coordinates from a 1200x1600 image. &amp;nbsp;This meant that I was always in the top left part of the picture.&lt;br /&gt;
&lt;br /&gt;
The following code seems pretty close (it might still be a little off) but at least it grabs stuff in the right vicinity. &amp;nbsp;I &amp;nbsp;wanted to solve this problem even though I'm currently planning to actually abandon the 'grab' screen and put on separate dialog approach. &amp;nbsp;Instead I'm going to create an overlay and place it on top of the current view, allowing precise dynamic changes to occur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;*) getView:(&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; )area&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;==&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;return&lt;/span&gt; &lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;==&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;return&lt;/span&gt; &lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;UIGraphicsBeginImageContext&lt;span style="color: black;"&gt;(area.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// we are using aspect fit, so we will be using which ever is the larger of these two scale factors.&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt;&lt;span style="color: black;"&gt; widthScaleFactor=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;bounds&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;width&lt;span style="color: black;"&gt;/&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;width&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt;&lt;span style="color: black;"&gt; heightScaleFactor=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;bounds&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;/&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; scaleFactor=widthScaleFactor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"scale factors are height=%f width=%f"&lt;/span&gt;,widthScaleFactor,heightScaleFactor);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (widthScaleFactor&lt;heightscalefactor)&gt;&lt;/heightscalefactor)&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; scaleFactor=heightScaleFactor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; drawRect=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(-area.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;/scaleFactor, -area.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;/scaleFactor,&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;UIImageOrientation&lt;span style="color: black;"&gt; currentOrient=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;image&lt;span style="color: black;"&gt;.&lt;/span&gt;imageOrientation&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; destRect=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, &lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, area.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;, area.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGContextRef&lt;/span&gt;&lt;span style="color: black;"&gt; context=&lt;/span&gt;UIGraphicsGetCurrentContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;CGContextClipToRect&lt;/span&gt;(context, destRect);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt; &lt;span style="color: #37047f;"&gt;drawInRect&lt;/span&gt;:drawRect];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;&lt;span style="color: black;"&gt;* im=&lt;/span&gt;UIGraphicsGetImageFromCurrentImageContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;UIGraphicsEndImageContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;return&lt;/span&gt; im;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6875102669221627432?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AHTxRIZ0ECOfYqcfgaKchq_i1Jc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AHTxRIZ0ECOfYqcfgaKchq_i1Jc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AHTxRIZ0ECOfYqcfgaKchq_i1Jc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AHTxRIZ0ECOfYqcfgaKchq_i1Jc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/meyqx4GzEHk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6875102669221627432/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/09/capturing-part-of-image-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6875102669221627432?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6875102669221627432?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/meyqx4GzEHk/capturing-part-of-image-from.html" title="Capturing part of an image from a UIImageView" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/09/capturing-part-of-image-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cARH4_eip7ImA9Wx5XFkQ.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-1042259620694194373</id><published>2010-09-16T19:37:00.000-07:00</published><updated>2010-09-16T19:37:25.042-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-16T19:37:25.042-07:00</app:edited><title>Colored RGB sliders, without a XIB</title><content type="html">The next step of my refactoring was to modify the Colored View sliders so that they are independent of a .xib file so that I can place them into any view. &amp;nbsp;This gives me a lot of flexibility and reduces some of the dependance of a xib in a dependent library. &amp;nbsp;&lt;br /&gt;
In addition I found that when I programmatically created the sliders I could change the height and make it look somewhat nicer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I revised the creation code so that it creates 4 sliders programmatically spaced within a passed in view. &amp;nbsp;It sets up callbacks in the current routine.&lt;br /&gt;
&lt;br /&gt;
When a color changes it calls a delegate with the changes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) loadView : (&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt; *)viewToUse&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"In loadView for ColorEditor"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// Don't use a nib.&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;leftMargin&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;rightMargin&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;spacing&lt;/span&gt;=&lt;span style="color: #2600d5;"&gt;5&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;fontSize&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; labelWidth=&lt;span style="color: #2600d5;"&gt;74&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; labelHeight=&lt;span style="color: #2600d5;"&gt;21&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; viewToUse.&lt;/span&gt;backgroundColor&lt;span style="color: black;"&gt;=[&lt;/span&gt;UIColor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;cyanColor&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;currentColorSpace&lt;span style="color: black;"&gt;==&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;currentColorSpace&lt;/span&gt;&lt;span style="color: black;"&gt; = &lt;/span&gt;CGColorSpaceCreateDeviceRGB&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSArray&lt;/span&gt;&lt;span style="color: black;"&gt; *sliderLabels=&amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSArray&lt;/span&gt;&lt;span style="color: black;"&gt; arrayWithObjects:&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;NSLocalizedString&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Red"&lt;span style="color: black;"&gt;, &lt;/span&gt;@"Red"&lt;span style="color: black;"&gt;), &lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;NSLocalizedString&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Green"&lt;span style="color: black;"&gt;, &lt;/span&gt;@"Green"&lt;span style="color: black;"&gt;), &lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;NSLocalizedString&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Blue"&lt;span style="color: black;"&gt;, &lt;/span&gt;@"Blue"&lt;span style="color: black;"&gt;),&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;NSLocalizedString&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Transparency"&lt;span style="color: black;"&gt;,&lt;/span&gt;"Transparency"&lt;span style="color: black;"&gt;), &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"view height %f, width %f x %f, y %f"&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; sliderHeight=(viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;)/&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"SliderHeight %d"&lt;/span&gt;,sliderHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; i=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;i++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; labelFrame=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, (sliderHeight+&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;)*i+sliderHeight/&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;-labelHeight/&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;, labelWidth, labelHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;UILabel&lt;/span&gt; *label=[[&lt;span style="color: #662ea7;"&gt;UILabel&lt;/span&gt; &lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;initWithFrame&lt;/span&gt;:labelFrame];&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label.&lt;/span&gt;adjustsFontSizeToFitWidth&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=[sliderLabels &lt;span style="color: #37047f;"&gt;objectAtIndex&lt;/span&gt;:i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [viewToUse &lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;:label];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; areaFrame=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #5e8087;"&gt;leftMargin&lt;/span&gt;+labelWidth, (sliderHeight+&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;)*i,viewToUse.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;leftMargin&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;rightMargin&lt;/span&gt;-labelWidth, sliderHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i]=[[&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt; &lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;]&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;&lt;span style="color: black;"&gt;[i] &lt;/span&gt;addTarget&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;action&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;@selector&lt;/span&gt;&lt;span style="color: black;"&gt;(sliderChanged:) &lt;/span&gt;forControlEvents&lt;span style="color: black;"&gt;:&lt;/span&gt;UIControlEventValueChanged&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i].&lt;span style="color: #662ea7;"&gt;tag&lt;/span&gt;=i; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sliders[i].accessibilityLabel=[sliderLabels objectAtIndex:i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"Y is %d"&lt;/span&gt;,(sliderHeight+&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;)*i);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i].&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;=areaFrame;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [viewToUse &lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i]];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;calcColors&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;and the calc colors is:&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) calcColors&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; index=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;index&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;index++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;setSlider&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[index] &lt;span style="color: #3e585d;"&gt;colorIndex&lt;/span&gt;:index];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;currentColor&lt;span style="color: black;"&gt;=[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;colorWithRed&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;green&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;blue&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alpha&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;]];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; index=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;index&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;index++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #418715;"&gt;// numeric fields are not implemented.&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;// &amp;nbsp; &amp;nbsp; textFields[index].text=[NSString stringWithFormat:@"%d",(int)&amp;nbsp; (colors[index]*255)];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #5e8087;"&gt;delegate&lt;/span&gt;!=&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;delegate&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;colorChanged&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;currentColor&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;This looks like:&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lh4.ggpht.com/_jEPICeL9B5g/TIsGu46FldI/AAAAAAAAAIA/miiIxcipz-4/navbarfix.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://lh4.ggpht.com/_jEPICeL9B5g/TIsGu46FldI/AAAAAAAAAIA/miiIxcipz-4/navbarfix.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Note that the sliders (the area in blue) is the only thing the code does. &amp;nbsp;The rest is a custom frame done in a .nib. &amp;nbsp;This enables me to embed the sliders in a view:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The .nib in interface builder looks like this:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jEPICeL9B5g/TJLSdowKCeI/AAAAAAAAAIU/_mUAc8h3qew/s1600/Screen+shot+2010-09-16+at+9.28.11+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_jEPICeL9B5g/TJLSdowKCeI/AAAAAAAAAIU/_mUAc8h3qew/s320/Screen+shot+2010-09-16+at+9.28.11+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Note that I have an image view under a label. &amp;nbsp;This allows me to change the label and show what it looks like under the label.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The yellow area is my current color for the slider view. &amp;nbsp;I set it to a unique color so that I can watch what is going on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I'm allowing the font and background color to be set using the tab bar. &amp;nbsp;This is not standard behavior for a tab bar, but it is allowable in a modal dialog. &amp;nbsp; I have a 3rd tab that will eventually be used for a font choice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The code for this is:&lt;/div&gt;&lt;div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)viewDidLoad {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;super&lt;/span&gt; &lt;span style="color: #37047f;"&gt;viewDidLoad&lt;/span&gt;]; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;colorEditor&lt;span style="color: black;"&gt;=[[&lt;/span&gt;ColorEditor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;&lt;span style="color: black;"&gt;]&lt;/span&gt;&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;isFont&lt;/span&gt;=&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;backgroundColor&lt;span style="color: black;"&gt;=[&lt;/span&gt;UIColor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;colorWithRed&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;green&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;blue&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alpha&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) initColors:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) fColor background:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) back text:(&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt;*) textValue image:(&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;*)background {&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;colorEditor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;loadView&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;actionView&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;colorEditor&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;delegate&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;textColor&lt;/span&gt;=fColor;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;backgroundColor&lt;span style="color: black;"&gt;=back;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=textValue;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;colorEditor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;setCurrentColor&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;label&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;textColor&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;backImage&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;contentMode&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;UIViewContentModeScaleAspectFit&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;backImage&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;image&lt;/span&gt;=background;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) colorChanged:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) newColor&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #5e8087;"&gt;isFont&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;textColor&lt;/span&gt;=newColor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;else&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;backgroundColor&lt;/span&gt;=newColor;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// Tell our delegate that we have our font colors changed.&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;delegate&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;styleChanged&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;textColor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;background&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;backgroundColor&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;- (&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;&lt;span style="color: black;"&gt;)tabBar:(&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITabBar&lt;/span&gt;&lt;span style="color: black;"&gt; *)tabBar didSelectItem:(&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITabBarItem&lt;/span&gt;&lt;span style="color: black;"&gt; *)item &lt;/span&gt;// called when a new view is selected by the user (but not programatically)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (item==&lt;span style="color: #5e8087;"&gt;fontColor&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;isFont&lt;/span&gt;=&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;colorEditor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;setCurrentColor&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;label&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;textColor&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;else&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;isFont&lt;/span&gt;=&lt;span style="color: #6f4a2c;"&gt;false&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;span style="color: #5e8087;"&gt;colorEditor&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;setCurrentColor&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;backgroundColor&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #5e8087;"&gt;label&lt;/span&gt; !=&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;label&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=item.&lt;span style="color: #662ea7;"&gt;title&lt;/span&gt;;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@end&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I can now change the color editor and use it to set both the background and foreground color of a font.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;And the header for this defines another protocol that allows the foreground and background color to be set.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@protocol&lt;/span&gt; StyleChanged&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) styleChanged:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) fontColor background:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) backColor;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@end&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@interface&lt;/span&gt;&lt;span style="color: black;"&gt; ColorEdit : &lt;/span&gt;UIViewController&lt;span style="color: black;"&gt;&amp;lt;&lt;/span&gt;UITabBarDelegate&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;ColorListener&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;gt; {&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt; &lt;span style="color: #662ea7;"&gt;UILabel&lt;/span&gt; *label;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt; &lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&amp;nbsp; *actionView;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt; &lt;span style="color: #662ea7;"&gt;UIImageView&lt;/span&gt; *backImage;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;ColorEditor&lt;/span&gt; *colorEditor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt; &lt;span style="color: #662ea7;"&gt;UITabBarItem&lt;/span&gt; *fontColor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt; &lt;span style="color: #662ea7;"&gt;UITabBarItem&lt;/span&gt; *backColor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;bool&lt;/span&gt; isFont;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;&amp;lt;&lt;span style="color: #5e8087;"&gt;StyleChanged&lt;/span&gt;&amp;gt; delegate;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;) &lt;/span&gt;IBOutlet&lt;span style="color: black;"&gt; UIImageView *backImage;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;) &lt;/span&gt;IBOutlet&lt;span style="color: black;"&gt; UILabel *label;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;) &lt;/span&gt;IBOutlet&lt;span style="color: black;"&gt; UIView *actionView;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) ColorEditor *colorEditor;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;) &lt;/span&gt;IBOutlet&lt;span style="color: black;"&gt; UITabBarItem *fontColor;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;)&amp;nbsp; &lt;/span&gt;IBOutlet&lt;span style="color: black;"&gt; UITabBarItem *backColor;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) &lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;&lt;stylechanged&gt; delegate;&lt;/stylechanged&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) initColors : (&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) fontColor background:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt;*) back text:(&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt;*) textValue image:(&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;*)background ;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-1042259620694194373?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UPRBhwwGGz9nvI0RFrYx0OTzLvw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UPRBhwwGGz9nvI0RFrYx0OTzLvw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UPRBhwwGGz9nvI0RFrYx0OTzLvw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UPRBhwwGGz9nvI0RFrYx0OTzLvw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/INu6jp7ncy4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/1042259620694194373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/09/colored-rgb-sliders-without-xib.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1042259620694194373?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1042259620694194373?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/INu6jp7ncy4/colored-rgb-sliders-without-xib.html" title="Colored RGB sliders, without a XIB" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_jEPICeL9B5g/TIsGu46FldI/AAAAAAAAAIA/miiIxcipz-4/s72-c/navbarfix.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/09/colored-rgb-sliders-without-xib.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04MQHo9eSp7ImA9Wx5XEUo.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-5693343844489781785</id><published>2010-09-10T21:39:00.000-07:00</published><updated>2010-09-10T21:39:41.461-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-10T21:39:41.461-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="filling views" /><category scheme="http://www.blogger.com/atom/ns#" term="navigation controller" /><category scheme="http://www.blogger.com/atom/ns#" term="Debugging" /><title>Programmatically adding views to fit view not working</title><content type="html">I was attempting to modify my sliders so that I add the programmatically to fit the available space. &amp;nbsp;In doing so I was taking an input view and calculating the size that the 4 bars should be to fill up the available space. &amp;nbsp;I was running into a problem that they weren't displaying correctly. &amp;nbsp;The bottom bar was always running over.&lt;br /&gt;
&lt;br /&gt;
The weird thing was that all the logging showed that it was working. &amp;nbsp;I finally figured out that the navigation bar at the top seemed to be messing me up. &amp;nbsp;I was calculating my view sizes prior to pushing them onto the navigation stack, and that was compressing the data.&lt;br /&gt;
&lt;br /&gt;
The code that calculates and populates my slider where viewToUse is a parameter:&lt;br /&gt;
this is done with the loadView command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"view height %f, width %f x %f, y %f"&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; sliderHeight=(viewToUse.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;)/&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"SliderHeight %d"&lt;/span&gt;,sliderHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; i=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;i++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; labelFrame=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, (sliderHeight+&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;)*i+sliderHeight/&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;-labelHeight/&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;, labelWidth, labelHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;UILabel&lt;/span&gt; *label=[[&lt;span style="color: #662ea7;"&gt;UILabel&lt;/span&gt; &lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;initWithFrame&lt;/span&gt;:labelFrame];&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label.&lt;/span&gt;adjustsFontSizeToFitWidth&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; label.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=[sliderLabels &lt;span style="color: #37047f;"&gt;objectAtIndex&lt;/span&gt;:i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [viewToUse &lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;:label];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; areaFrame=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #5e8087;"&gt;leftMargin&lt;/span&gt;+labelWidth, (sliderHeight+&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;)*i,viewToUse.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;leftMargin&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;rightMargin&lt;/span&gt;-labelWidth, sliderHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i]=[[&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt; &lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;]&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;&lt;span style="color: black;"&gt;[i] &lt;/span&gt;addTarget&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;action&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;@selector&lt;/span&gt;&lt;span style="color: black;"&gt;(sliderChanged:) &lt;/span&gt;forControlEvents&lt;span style="color: black;"&gt;:&lt;/span&gt;UIControlEventValueChanged&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i].&lt;span style="color: #662ea7;"&gt;tag&lt;/span&gt;=i; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sliders[i].accessibilityLabel=[sliderLabels objectAtIndex:i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"Y is %d"&lt;/span&gt;,(sliderHeight+&lt;span style="color: #5e8087;"&gt;spacing&lt;/span&gt;)*i);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i].&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;=areaFrame;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [viewToUse &lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;sliders&lt;/span&gt;[i]];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;This precise code looks very different depending on how my view is initialized:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;With a navigation bar:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsCaEcgP1I/AAAAAAAAAH4/5X25ZX_gO4c/s1600/withnavbar.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsCaEcgP1I/AAAAAAAAAH4/5X25ZX_gO4c/s320/withnavbar.png" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Select color chosen"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;resignFirstResponder&lt;span style="color: black;"&gt;];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;ColorEdit&lt;/span&gt; *colorEditor=[[&lt;span style="color: #5e8087;"&gt;ColorEdit&lt;/span&gt; &lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;init&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;navController&lt;/span&gt; &lt;span style="color: #37047f;"&gt;pushViewController&lt;/span&gt;:colorEditor animated:&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;navController&lt;/span&gt; setNavigationBarHidden:&lt;span style="color: #6f4a2c;"&gt;false&lt;/span&gt; ];&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;And with this, (no navigation bar)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsBxqeCglI/AAAAAAAAAHw/1OTXGkzSzFE/s1600/nonavbar.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsBxqeCglI/AAAAAAAAAHw/1OTXGkzSzFE/s320/nonavbar.png" width="212" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="color: #37047f; font: normal normal normal 11px/normal Menlo; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;resignFirstResponder&lt;span style="color: black;"&gt;];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Menlo; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: #5e8087;"&gt;ColorEdit&lt;/span&gt;&amp;nbsp;*colorEditor=[[&lt;span style="color: #5e8087;"&gt;ColorEdit&lt;/span&gt;&amp;nbsp;&lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;]&amp;nbsp;&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Menlo; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 13px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Menlo; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;navController&lt;/span&gt;&amp;nbsp;&lt;span style="color: #37047f;"&gt;pushViewController&lt;/span&gt;:colorEditor animated:&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Menlo; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;navController&lt;/span&gt;&amp;nbsp;setNavigationBarHidden:&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;&amp;nbsp;];&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Finally I moved the initialization to another function instead of when the view loads and call this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsGu46FldI/AAAAAAAAAIA/miiIxcipz-4/s1600/navbarfix.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsGu46FldI/AAAAAAAAAIA/miiIxcipz-4/s320/navbarfix.png" width="212" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Select color chosen"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;resignFirstResponder&lt;span style="color: black;"&gt;];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #5e8087;"&gt;ColorEdit&lt;/span&gt; *colorEditor=[[&lt;span style="color: #5e8087;"&gt;ColorEdit&lt;/span&gt; &lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;init&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;navController&lt;/span&gt; &lt;span style="color: #37047f;"&gt;pushViewController&lt;/span&gt;:colorEditor animated:&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;navController&lt;/span&gt; setNavigationBarHidden:&lt;span style="color: #6f4a2c;"&gt;false&lt;/span&gt; ];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [colorEditor &lt;span style="color: #3e585d;"&gt;initColors&lt;/span&gt;];&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Note that this changes the size of the view, probably because it autoresizes then the navigation bar is added.&lt;/div&gt;&lt;div&gt;With the navigation bar it is 241 pixels high. &amp;nbsp;Without the navigation bar it is 285 pixels high.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The lesson is that when programmatically filling in a view, pay attention to WHEN you do it. If you are going to have other items hanging around check to see if those are changing the heights of your views. &amp;nbsp;This might throw off your results. &amp;nbsp;This particular one cost me several hours of debugging, since I was sure my math was correct.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-5693343844489781785?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/neiuis9P12LqcwxVoTxz1HpKiGQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/neiuis9P12LqcwxVoTxz1HpKiGQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/neiuis9P12LqcwxVoTxz1HpKiGQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/neiuis9P12LqcwxVoTxz1HpKiGQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/d2m4-Qs-n48" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/5693343844489781785/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/09/programmatically-adding-views-to-fit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/5693343844489781785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/5693343844489781785?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/d2m4-Qs-n48/programmatically-adding-views-to-fit.html" title="Programmatically adding views to fit view not working" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_jEPICeL9B5g/TIsCaEcgP1I/AAAAAAAAAH4/5X25ZX_gO4c/s72-c/withnavbar.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/09/programmatically-adding-views-to-fit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINQX47fip7ImA9Wx5QFUo.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-1223320220580422444</id><published>2010-09-03T21:13:00.000-07:00</published><updated>2010-09-03T21:13:10.006-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-03T21:13:10.006-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XCode" /><category scheme="http://www.blogger.com/atom/ns#" term="navigation controller" /><title>Back from a long absence</title><content type="html">I've been taking a break and trying to get back into iphone development. &amp;nbsp;I decided my wall paper editor needed a navigation controller. &amp;nbsp;This turned out nastier than I thought. &amp;nbsp;XCode 4 has some problems with user interface editing, and I also forgot what I was doing.&lt;br /&gt;
&lt;br /&gt;
What I had to do to retrofit a navigation controller onto my existing project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Add a navigation controller to my main window&lt;/li&gt;
&lt;li&gt;Add my main I was using as the view in the navigation controller. &amp;nbsp;You have to set both the nib and the class to your class.&lt;/li&gt;
&lt;li&gt;Add a navigation controller outlet to my application delegate.&lt;/li&gt;
&lt;li&gt;Connect my navigation controller to that outlet.&lt;/li&gt;
&lt;li&gt;Modify the main of the delegate to do the following:&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;[&lt;/span&gt;window&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;rootViewController&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: black;"&gt;where rootViewController is:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: black;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;, &lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) &lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt; UINavigationController *rootViewController;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;I spent more time than I care to think doing this, I would miss one step or another and things would just not work. &amp;nbsp;It was useful practice to wire the thing together, but it ate a lot of time.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-1223320220580422444?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Fy1OSwpv3xtnnkm9ymMBGSexpQg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fy1OSwpv3xtnnkm9ymMBGSexpQg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Fy1OSwpv3xtnnkm9ymMBGSexpQg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fy1OSwpv3xtnnkm9ymMBGSexpQg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/OnJDlTgp97E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/1223320220580422444/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/09/back-from-long-absence.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1223320220580422444?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1223320220580422444?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/OnJDlTgp97E/back-from-long-absence.html" title="Back from a long absence" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/09/back-from-long-absence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IHR3s9eCp7ImA9Wx5TEUw.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6315917474874207437</id><published>2010-07-25T21:45:00.000-07:00</published><updated>2010-07-25T21:45:36.560-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-25T21:45:36.560-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XCode" /><category scheme="http://www.blogger.com/atom/ns#" term="XCode 4" /><title>XCode 4</title><content type="html">I'm going to honor the NDA and not discuss details, however if you are a member of the XCode development program rush and download the beta version of XCode 4. &amp;nbsp;It is a vast improvement over XCode 3 and seems to fix some of the major problems that I had with XCode 3, especially in comparison with Visual Studio and Eclipse. &amp;nbsp; It's a separate install and won't trounce your XCode 3 install, and you can use both of them on your projects depending on your needs.&lt;br /&gt;
&lt;br /&gt;
I've only scratched the surface, and I already find it very nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6315917474874207437?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WT-Iufnu_d1_8lGrTzPc-l-RDwI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WT-Iufnu_d1_8lGrTzPc-l-RDwI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WT-Iufnu_d1_8lGrTzPc-l-RDwI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WT-Iufnu_d1_8lGrTzPc-l-RDwI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/IAdszzqwdtE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6315917474874207437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/xcode-4.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6315917474874207437?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6315917474874207437?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/IAdszzqwdtE/xcode-4.html" title="XCode 4" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/xcode-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AAQHk_fCp7ImA9Wx5TEUw.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6691403907391223568</id><published>2010-07-25T20:42:00.001-07:00</published><updated>2010-07-25T20:42:21.744-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-25T20:42:21.744-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XCode" /><title>-Release not found in protocol</title><content type="html">I had some delegates defined as id&lt;protocolname&gt; in my code, and have been ignoring the 'release not found in protocol' errors that I get on release (and retain). &amp;nbsp;I finally decided to eliminate them, I added the NSObject protocol to my protocol definition. &amp;nbsp;This removed this particular warning, which is good because I want to remove all warnings (if possible) from my code.&lt;/protocolname&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6691403907391223568?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fEb9EycrIpw87j9Q7oFqeqoDL08/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fEb9EycrIpw87j9Q7oFqeqoDL08/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fEb9EycrIpw87j9Q7oFqeqoDL08/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fEb9EycrIpw87j9Q7oFqeqoDL08/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/m77FMSdK0dM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6691403907391223568/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/release-not-found-in-protocol.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6691403907391223568?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6691403907391223568?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/m77FMSdK0dM/release-not-found-in-protocol.html" title="-Release not found in protocol" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/release-not-found-in-protocol.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMRnw9eSp7ImA9WxFaFUQ.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6946365323316473125</id><published>2010-07-19T20:59:00.000-07:00</published><updated>2010-07-19T20:59:47.261-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-19T20:59:47.261-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="useful classes" /><category scheme="http://www.blogger.com/atom/ns#" term="wall paper editor" /><category scheme="http://www.blogger.com/atom/ns#" term="Sliders" /><title>Wall Paper Editor: Colored RGB Sliders</title><content type="html">I have a first cut of a pretty nice RGB slider. &amp;nbsp;This will work similar to how the Apple slider works in interface builder for RGB. &amp;nbsp;The color sliders indicate what you will get when you change the slider.&lt;br /&gt;
&lt;br /&gt;
This is a first cut, it uses a .nib file, which seems to sometimes be pesky when using a library. &amp;nbsp;I would like to redo it to just do it with code.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jEPICeL9B5g/TEPQjfbzXpI/AAAAAAAAAG8/vNYUwVx-DT8/s1600/Screen+shot+2010-07-18+at+11.11.45+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://2.bp.blogspot.com/_jEPICeL9B5g/TEPQjfbzXpI/AAAAAAAAAG8/vNYUwVx-DT8/s200/Screen+shot+2010-07-18+at+11.11.45+PM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Here is the sample .nib file. &amp;nbsp;I have a background label, and an image with an invisible label over it. &amp;nbsp;I'm going to change the background color of the label as I move the text. &amp;nbsp;The background label is just so you can see the transparency.&lt;br /&gt;
&lt;br /&gt;
I have 4 sliders for red, green, blue and Transparency. &amp;nbsp;I also have a text field to display the normalized value of the field (0-255). &amp;nbsp; As each slider is moved I will change the label image, and recalculate the images for the &amp;nbsp;sliders.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The code is still beta. &amp;nbsp;It works for the principle but needs some cleaning up. &amp;nbsp;Right now it has the following problems.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;When the view first comes up it doesn't display the colors.&lt;/li&gt;
&lt;li&gt;You can't type a number into the text field.&lt;/li&gt;
&lt;li&gt;I really want to support reorientation of the field, and larger sliders.&lt;/li&gt;
&lt;/ol&gt;&lt;a href="http://4.bp.blogspot.com/_jEPICeL9B5g/TEPThCY6YEI/AAAAAAAAAHQ/7zH-5IqVjac/s1600/IMG_0296.PNG"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_jEPICeL9B5g/TEPThCY6YEI/AAAAAAAAAHQ/7zH-5IqVjac/s200/IMG_0296.PNG" width="133" /&gt;&amp;nbsp;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_jEPICeL9B5g/TEPTkVeYjnI/AAAAAAAAAHY/vHOB2zy711g/s1600/IMG_0297.PNG"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_jEPICeL9B5g/TEPTkVeYjnI/AAAAAAAAAHY/vHOB2zy711g/s200/IMG_0297.PNG" width="133" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_jEPICeL9B5g/TEPTxl-xVUI/AAAAAAAAAHg/-s1gpp9ZUn4/s1600/IMG_0298.PNG"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_jEPICeL9B5g/TEPTxl-xVUI/AAAAAAAAAHg/-s1gpp9ZUn4/s200/IMG_0298.PNG" width="133" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Above is the form running in three different selections. &amp;nbsp;I display the current color up above, and for each slider I display a gradient showing what happens when you move that slider to the given location. &amp;nbsp;This allows for a quick visual indicator of how to traverse the RGB color space.&lt;br /&gt;
&lt;br /&gt;
The key to this is the use of UISlider setMinimumTrackImage and setMaximumTrackImage. &amp;nbsp;Both of these routines take an image and use it. &amp;nbsp;So whenever the slider is moved I calculate a gradient for all 4 sliders of what moving that slider will do. &amp;nbsp;I then set the min and max images for the slider. &amp;nbsp;On my iPhone 3G this runs pretty nicely, although I personally have trouble distinguishing all the colors in the gradient. &amp;nbsp;The screenshot looks better actually :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The key is that whenever a slider value is changed I go through and recalculate all 4 sliders. &amp;nbsp;For each slider I assume all of the other color coordinates are going to remain constant, however that particular slider will vary from 0 to 1 (which is how CoreGraphics handles color values).&lt;br /&gt;
&lt;br /&gt;
I use the slider's position to determine where my two images start and begin, as well as what the value is at that point (which since the sliders go from 0 to 1 just like colors is pretty easy).&lt;br /&gt;
&lt;br /&gt;
My routine to calculate a slider takes the index of the slider and uses it.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) setSlider:(&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;*) slide colorIndex:(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;) colorIndex&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I have two arrays of floats for colors. &amp;nbsp;lcolors and rcolors for the gradient on the left and right of the slider.&lt;br /&gt;
Each array has 8 elements for Red, Green, Blue and Alpha for the start and end.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; lcolors[&lt;span style="color: #2600d5;"&gt;8&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; rcolors[&lt;span style="color: #2600d5;"&gt;8&lt;/span&gt;];&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
First I set all values equal to the current color. &amp;nbsp;Only one color is varying. &amp;nbsp;I could put a continue statement for the color I'm working with, but I just override it a little later.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; i=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;i++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;lcolors[i]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;lcolors[i+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;rcolors[i]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;rcolors[i+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Next I set the start and end colors for current color. &amp;nbsp;I'm going to vary the left gradient from 0 to the currentValue, and the right gradient from the current value to 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; currentColorValue=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[colorIndex];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;lcolors[colorIndex]=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;lcolors[colorIndex+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=currentColorValue;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;rcolors[colorIndex]=currentColorValue;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;rcolors[colorIndex+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=&lt;span style="color: #2600d5;"&gt;1.0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Now I calculate the left and right gradient and build an image with them. &amp;nbsp;The size of the image is the portion of the slider to the left/right of the current value. &amp;nbsp;(Note that I don't need a image if I'm at the left or right end).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; middlePoint=slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;*currentColorValue;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; leftSize=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, &lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, middlePoint, slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; rightSize=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, &lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;-middlePoint, slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (leftSize.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;&amp;gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt; *lImage=[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;createImageWithGradient&lt;/span&gt;:lgradient &lt;span style="color: #3e585d;"&gt;withSize&lt;/span&gt;:leftSize];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[slide&amp;nbsp; &lt;/span&gt;setMinimumTrackImage&lt;span style="color: black;"&gt;:lImage &lt;/span&gt;forState&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (rightSize.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;&amp;gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt; *rImage=[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;createImageWithGradient&lt;/span&gt;:rgradient &lt;span style="color: #3e585d;"&gt;withSize&lt;/span&gt;:rightSize];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[slide &lt;/span&gt;setMaximumTrackImage&lt;span style="color: black;"&gt;:rImage &lt;/span&gt;forState&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt; ];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Where createImageWithGradient is:&lt;/div&gt;&lt;div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;*) createImageWithGradient :(&lt;span style="color: #662ea7;"&gt;CGGradientRef&lt;/span&gt;) gradient withSize: (&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt;)size&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;UIGraphicsBeginImageContext&lt;span style="color: black;"&gt;(size.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt; start=&lt;span style="color: #37047f;"&gt;CGPointMake&lt;/span&gt;(size.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,size.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;+size.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;*&lt;span style="color: #2600d5;"&gt;0.25&lt;/span&gt;);&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGPoint&lt;span style="color: black;"&gt; end=&lt;/span&gt;&lt;span style="color: #37047f;"&gt;CGPointMake&lt;/span&gt;&lt;span style="color: black;"&gt;(size.&lt;/span&gt;origin&lt;span style="color: black;"&gt;.&lt;/span&gt;x&lt;span style="color: black;"&gt;+size.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;width&lt;span style="color: black;"&gt;,size.&lt;/span&gt;origin&lt;span style="color: black;"&gt;.&lt;/span&gt;y&lt;span style="color: black;"&gt;+size.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;*&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.25&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGContextDrawLinearGradient&lt;span style="color: black;"&gt;(&lt;/span&gt;UIGraphicsGetCurrentContext&lt;span style="color: black;"&gt;(), gradient, start, end, &lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;&lt;span style="color: black;"&gt; *viewImage=&lt;/span&gt;UIGraphicsGetImageFromCurrentImageContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;UIGraphicsEndImageContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;return&lt;/span&gt;&lt;span style="color: black;"&gt; [viewImage &lt;/span&gt;stretchableImageWithLeftCapWidth&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;topCapHeight&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;Finally release the gradients:&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGGradientRelease&lt;span style="color: black;"&gt;(lgradient);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGGradientRelease&lt;span style="color: black;"&gt;(rgradient);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;Everytime I move the slider, I calculate all the colors and fill in the text boxes:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) calcColors&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;redSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;greenSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;blueSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;transSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt; *currentColor=[&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt; &lt;span style="color: #37047f;"&gt;colorWithRed&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;green&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;blue&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;alpha&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;]];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;refLabel&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;backgroundColor&lt;/span&gt;=currentColor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;redTextField&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=[&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt; &lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;:&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;,(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;)&amp;nbsp; (&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;]*&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;)];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;greenTextField&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;&lt;span style="color: black;"&gt;=[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;&lt;span style="color: black;"&gt;,(&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;&lt;span style="color: black;"&gt;) ( &lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;]*&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;&lt;span style="color: black;"&gt;)];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;blueTextField&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=[&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt; &lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;:&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;,(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;)&amp;nbsp; (&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;]*&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;)];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;transTextField&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;&lt;span style="color: black;"&gt;=[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;&lt;span style="color: black;"&gt;,(&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;&lt;span style="color: black;"&gt;) ( &lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;]*&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;&lt;span style="color: black;"&gt;)];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;To make my actions easier, I set the tags of the sliders and text fields equal to the color index associated with them.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;For future use I want to migrate this from a view with a nib to a control that doesn't have a nib. It would make it easier to use in multiple projects. &amp;nbsp;I also plan to expand it so that I can support selecting from a list of colors, and eventually from a &amp;nbsp;spectrum map.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Below is the entire class, feel free to use it for your own projects. &amp;nbsp;I would appreciate a attribution (Creative Commons attribution license).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The header&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #6f4a2c;"&gt;#import &lt;/span&gt;&lt;uikit/uikit.h&gt;&lt;/uikit/uikit.h&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #6f4a2c;"&gt;#import &lt;/span&gt;&lt;quartzcore/quartzcore.h&gt;&lt;/quartzcore/quartzcore.h&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@interface&lt;/span&gt; ColorEditor : UIViewController {&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;redSlider&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;greenSlider&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;blueSlider&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;transSlider&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;IBOutlet&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UILabel&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;refLabel&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITextField&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;redTextField&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITextField&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;greenTextField&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;IBOutlet&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITextField&lt;/span&gt;&lt;span style="color: black;"&gt; *&lt;/span&gt;transTextField&lt;span style="color: black;"&gt;;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt;&amp;nbsp; &lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGColorSpaceRef&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;currentColorSpace&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;) initWithColor:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt; *)color;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UISlider *redSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UISlider *greenSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UISlider *blueSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UISlider *transSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;) CGColorSpaceRef currentColorSpace;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;) UILabel *refLabel;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UITextField *redTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UITextField *greenTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UITextField *blueTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;,&lt;span style="color: #a513a0;"&gt;retain&lt;/span&gt;) UITextField *transTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;IBAction&lt;/span&gt;) bob:(&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;) sender;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;IBAction&lt;/span&gt;) sliderChanged:(&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;) sender;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;*) createImageWithGradient :(&lt;span style="color: #662ea7;"&gt;CGGradientRef&lt;/span&gt;) gradient withSize: (&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt;)size;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) setSlider:(&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;*) slide colorIndex:(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;) colorIndex;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) calcColors;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@end&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The source&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #6f4a2c;"&gt;#import &lt;/span&gt;"ColorEditor.h"&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #6f4a2c;"&gt;#import &lt;/span&gt;&lt;quartzcore/quartzcore.h&gt;&lt;/quartzcore/quartzcore.h&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@implementation&lt;span style="color: black;"&gt; ColorEditor&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; redSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; greenSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; blueSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; transSlider;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; currentColorSpace;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@synthesize&lt;span style="color: black;"&gt; refLabel;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; redTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; greenTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; blueTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@synthesize&lt;/span&gt; transTextField;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;/*&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;// The designated initializer.&amp;nbsp; Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Custom initialization&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; return self;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;*/&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;/*&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (void)viewDidLoad {&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [super viewDidLoad];&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;*/&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;/*&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// Override to allow orientations other than the default portrait orientation.&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; // Return YES for supported orientations&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; return (interfaceOrientation == UIInterfaceOrientationPortrait);&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;*/&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)didReceiveMemoryWarning {&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// Releases the view if it doesn't have a superview.&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;super&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;didReceiveMemoryWarning&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// Release any cached data, images, etc that aren't in use.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)viewDidUnload {&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;super&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;viewDidUnload&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// Release any retained subviews of the main view.&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// e.g. self.myOutlet = nil;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)dealloc {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; [&lt;span style="color: #a513a0;"&gt;super&lt;/span&gt; &lt;span style="color: #37047f;"&gt;dealloc&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGColorSpaceRelease&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;currentColorSpace&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) setSlider:(&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;*) slide colorIndex:(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;) colorIndex&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; currentColorValue=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[colorIndex];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; lcolors[&lt;span style="color: #2600d5;"&gt;8&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; rcolors[&lt;span style="color: #2600d5;"&gt;8&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; i=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;i++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;lcolors[i]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;lcolors[i+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;rcolors[i]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;rcolors[i+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;lcolors[colorIndex]=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;lcolors[colorIndex+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=currentColorValue;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;rcolors[colorIndex]=currentColorValue;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;rcolors[colorIndex+&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;]=&lt;span style="color: #2600d5;"&gt;1.0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Now we have two gradients&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGGradientRef&lt;/span&gt; lgradient = &lt;span style="color: #37047f;"&gt;CGGradientCreateWithColorComponents&lt;/span&gt;(&lt;span style="color: #5e8087;"&gt;currentColorSpace&lt;/span&gt;, lcolors, &lt;span style="color: #a513a0;"&gt;NULL&lt;/span&gt;, &lt;span style="color: #a513a0;"&gt;sizeof&lt;/span&gt;(lcolors)/(&lt;span style="color: #a513a0;"&gt;sizeof&lt;/span&gt;(lcolors[&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;])*&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;));&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGGradientRef&lt;/span&gt; rgradient = &lt;span style="color: #37047f;"&gt;CGGradientCreateWithColorComponents&lt;/span&gt;(&lt;span style="color: #5e8087;"&gt;currentColorSpace&lt;/span&gt;, rcolors, &lt;span style="color: #a513a0;"&gt;NULL&lt;/span&gt;, &lt;span style="color: #a513a0;"&gt;sizeof&lt;/span&gt;(rcolors)/(&lt;span style="color: #a513a0;"&gt;sizeof&lt;/span&gt;(rcolors[&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;])*&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;));&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;float&lt;/span&gt; middlePoint=slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;*currentColorValue;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; leftSize=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, &lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, middlePoint, slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; rightSize=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, &lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;, slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;-middlePoint, slide.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (leftSize.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;&amp;gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt; *lImage=[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;createImageWithGradient&lt;/span&gt;:lgradient &lt;span style="color: #3e585d;"&gt;withSize&lt;/span&gt;:leftSize];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[slide&amp;nbsp; &lt;/span&gt;setMinimumTrackImage&lt;span style="color: black;"&gt;:lImage &lt;/span&gt;forState&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (rightSize.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;&amp;gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt; *rImage=[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;createImageWithGradient&lt;/span&gt;:rgradient &lt;span style="color: #3e585d;"&gt;withSize&lt;/span&gt;:rightSize];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[slide &lt;/span&gt;setMaximumTrackImage&lt;span style="color: black;"&gt;:rImage &lt;/span&gt;forState&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt; ];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGGradientRelease&lt;span style="color: black;"&gt;(lgradient);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGGradientRelease&lt;span style="color: black;"&gt;(rgradient);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;*) createImageWithGradient :(&lt;span style="color: #662ea7;"&gt;CGGradientRef&lt;/span&gt;) gradient withSize: (&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt;)size&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;UIGraphicsBeginImageContext&lt;span style="color: black;"&gt;(size.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt; start=&lt;span style="color: #37047f;"&gt;CGPointMake&lt;/span&gt;(size.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,size.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;+size.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;*&lt;span style="color: #2600d5;"&gt;0.25&lt;/span&gt;);&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGPoint&lt;span style="color: black;"&gt; end=&lt;/span&gt;&lt;span style="color: #37047f;"&gt;CGPointMake&lt;/span&gt;&lt;span style="color: black;"&gt;(size.&lt;/span&gt;origin&lt;span style="color: black;"&gt;.&lt;/span&gt;x&lt;span style="color: black;"&gt;+size.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;width&lt;span style="color: black;"&gt;,size.&lt;/span&gt;origin&lt;span style="color: black;"&gt;.&lt;/span&gt;y&lt;span style="color: black;"&gt;+size.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;*&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.25&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;CGContextDrawLinearGradient&lt;span style="color: black;"&gt;(&lt;/span&gt;UIGraphicsGetCurrentContext&lt;span style="color: black;"&gt;(), gradient, start, end, &lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIImage&lt;/span&gt;&lt;span style="color: black;"&gt; *viewImage=&lt;/span&gt;UIGraphicsGetImageFromCurrentImageContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;UIGraphicsEndImageContext&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;return&lt;/span&gt;&lt;span style="color: black;"&gt; [viewImage &lt;/span&gt;stretchableImageWithLeftCapWidth&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;topCapHeight&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;) initWithColor:(&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt; *)color&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;currentColorSpace&lt;/span&gt;&lt;span style="color: black;"&gt; = &lt;/span&gt;CGColorSpaceCreateDeviceRGB&lt;span style="color: black;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;const&lt;/span&gt; &lt;span style="color: #662ea7;"&gt;CGFloat&lt;/span&gt; *components = &lt;span style="color: #37047f;"&gt;CGColorGetComponents&lt;/span&gt;(color.&lt;span style="color: #662ea7;"&gt;CGColor&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; i=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: #2600d5;"&gt;4&lt;/span&gt;;i++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[i]=components[i];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;//[self calcColors];&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;self&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) calcColors&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;redSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;greenSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;blueSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setSlider&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;transSlider&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;colorIndex&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt; *currentColor=[&lt;span style="color: #662ea7;"&gt;UIColor&lt;/span&gt; &lt;span style="color: #37047f;"&gt;colorWithRed&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;green&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;blue&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;alpha&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;]];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;refLabel&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;backgroundColor&lt;/span&gt;=currentColor;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;redTextField&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=[&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt; &lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;:&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;,(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;)&amp;nbsp; (&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;]*&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;)];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;greenTextField&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;&lt;span style="color: black;"&gt;=[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;&lt;span style="color: black;"&gt;,(&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;&lt;span style="color: black;"&gt;) ( &lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;]*&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;&lt;span style="color: black;"&gt;)];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;blueTextField&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;=[&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt; &lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;:&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;,(&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;)&amp;nbsp; (&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;]*&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;)];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;transTextField&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;text&lt;/span&gt;&lt;span style="color: black;"&gt;=[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSString&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;stringWithFormat&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #ba2e1d;"&gt;@"%d"&lt;/span&gt;&lt;span style="color: black;"&gt;,(&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt;&lt;span style="color: black;"&gt;) ( &lt;/span&gt;colors&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;]*&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;255&lt;/span&gt;&lt;span style="color: black;"&gt;)];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;IBAction&lt;/span&gt;) sliderChanged:(&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;) sender&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt; *slider=(&lt;span style="color: #662ea7;"&gt;UISlider&lt;/span&gt;*) sender;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; colorIndex=slider.&lt;span style="color: #662ea7;"&gt;tag&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;colors&lt;/span&gt;[colorIndex]=slider.&lt;span style="color: #662ea7;"&gt;value&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;calcColors&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;IBAction&lt;/span&gt;) bob:(&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;)sender&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@end&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6946365323316473125?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CFF0MJDJ2mqngs_olrNU2UJ4isE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CFF0MJDJ2mqngs_olrNU2UJ4isE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CFF0MJDJ2mqngs_olrNU2UJ4isE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CFF0MJDJ2mqngs_olrNU2UJ4isE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/H7Nzd3MIhkg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6946365323316473125/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-colored-rgb-sliders.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6946365323316473125?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6946365323316473125?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/H7Nzd3MIhkg/wall-paper-editor-colored-rgb-sliders.html" title="Wall Paper Editor: Colored RGB Sliders" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_jEPICeL9B5g/TEPQjfbzXpI/AAAAAAAAAG8/vNYUwVx-DT8/s72-c/Screen+shot+2010-07-18+at+11.11.45+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-colored-rgb-sliders.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08BQ3c4eCp7ImA9WxFaEk4.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-4121461692494330636</id><published>2010-07-15T17:24:00.000-07:00</published><updated>2010-07-15T17:24:12.930-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-15T17:24:12.930-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="otter box" /><category scheme="http://www.blogger.com/atom/ns#" term="ipad" /><title>Otter Box case for IPad</title><content type="html">I have an Otterbox case for my iPhone and love it, it's very protective and feels nice. &amp;nbsp;I signed up for a mailing list for when OtterBox releases an iPad version. &amp;nbsp;Well &lt;a href="http://www.otterbox.com/ipad-cases/"&gt;they have finally done so&lt;/a&gt;. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
I purchased the defender case, and received it in the mail a couple days ago. &amp;nbsp; The free shipping was very fast, it took 3 days to get to my house.&lt;br /&gt;
&lt;br /&gt;
First impressions:&lt;br /&gt;
&lt;br /&gt;
What you get is a film you can apply to your screen, a 2 layer case that covers most of the iPad, and a back that can either serve as a stand, or a greater protective cover to your screen. &amp;nbsp;It also includes a large screen cleaning cloth, and a plastic piece to help attach the film to the screen.&lt;br /&gt;
&lt;br /&gt;
The case feels very solid, and I think it will be very impact resistant. &amp;nbsp;If you have the back cover over the screen it provides an air gap that should protect your screen against direct impact. &amp;nbsp;The other sides are covered with rubber over a hard plastic case.&lt;br /&gt;
&lt;br /&gt;
There is a back to the case that can be removed. &amp;nbsp;This allows access to the power outlet and to be used as a docking station. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pros:&lt;br /&gt;
Very protective&lt;br /&gt;
When the case is put on the front of the iPad it should allow you to put it in any bag.&lt;br /&gt;
The back can be used as a stand for your iPad.&lt;br /&gt;
Cons:&lt;br /&gt;
&lt;br /&gt;
The you need to remove the small piece in the back to charge it. &amp;nbsp;I would have liked a rubber plug such as my iPhone has for charging.&lt;br /&gt;
It's a little heavy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pictures will be forthcoming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-4121461692494330636?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zCS45xGRGx70cyTSi5b5SRMkBtk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zCS45xGRGx70cyTSi5b5SRMkBtk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zCS45xGRGx70cyTSi5b5SRMkBtk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zCS45xGRGx70cyTSi5b5SRMkBtk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/b_3OvGg4AY4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/4121461692494330636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/otter-box-case-for-ipad.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/4121461692494330636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/4121461692494330636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/b_3OvGg4AY4/otter-box-case-for-ipad.html" title="Otter Box case for IPad" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/otter-box-case-for-ipad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cGRXg6fip7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-1597431465409025456</id><published>2010-07-11T21:30:00.000-07:00</published><updated>2010-07-11T21:30:24.616-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T21:30:24.616-07:00</app:edited><title>Wallpaper Editor: Color slidebar</title><content type="html">OK, I could just put up a standard slide bar and let the user set RGB values, but that is not too great for general users, and even developers can have troubles visualizing the RGB color space. &amp;nbsp;Taking a look in interface builder, I see that IT's color selector is extremely nice. &amp;nbsp; Lets steal some of its design. &amp;nbsp;(All of its design would be too much, it packs a lot of functionality).&lt;br /&gt;
&lt;br /&gt;
The sliders it has are very nice. &amp;nbsp;As you change the value of one slider, the other sliders change their gradient so that they show the possible values:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_jEPICeL9B5g/TDqW2YIiewI/AAAAAAAAAGs/QoncM3ojB9Q/s1600/Screen+shot+2010-07-11+at+11.14.23+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://4.bp.blogspot.com/_jEPICeL9B5g/TDqW2YIiewI/AAAAAAAAAGs/QoncM3ojB9Q/s200/Screen+shot+2010-07-11+at+11.14.23+PM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;The iphone editor has 4 different types of sliders RGB, grey scale, CMYK, HSB. &amp;nbsp;In addition it has the ability to select from an image, to select 'crayons', to select a list of names, etc...&lt;br /&gt;
&lt;br /&gt;
The opacity button allows the Alpha to be set. &amp;nbsp;I was originally going to call mine 'transparency', but Opacity works as well. &amp;nbsp; &amp;nbsp; Either way using Alpha is something only computer geeks will use. &amp;nbsp;As the alpha is set, a combination of black and white is displayed behind color sample.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I plan to implement RGB sliders in a similar fashion and maybe a list of names for my initial cut. &amp;nbsp;If I do it right I should be able to support the other color spaces. &amp;nbsp; Right now I think giving too many color spaces might confuse people. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The first implementation is to create a single slide bar that takes an object that helps set the color gradient for that slider. &lt;br /&gt;
&lt;br /&gt;
My sliders will not have the ability to specify a full 256 values for color. &amp;nbsp;The iphone's UI doesn't really let this happen unless I force the sliders to be landscape, and get picky about colors. &amp;nbsp;However I should be able to support increments of 10, and to possibly have a 'zoom down' mode where you get to the general vicinity and then choose a specific number. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
If you collapse the Apple dialog then it will not allow you to choose every number.&lt;br /&gt;
&lt;br /&gt;
Note that for my final version I might want to do HSV instead of RGB, it might be easier for the general user to find a color using that model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-1597431465409025456?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B5o6vGE5MiTReR3f3A3yE1WUWSo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B5o6vGE5MiTReR3f3A3yE1WUWSo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B5o6vGE5MiTReR3f3A3yE1WUWSo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B5o6vGE5MiTReR3f3A3yE1WUWSo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/m_59JzuI0Es" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/1597431465409025456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wallpaper-editor-color-slidebar.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1597431465409025456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/1597431465409025456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/m_59JzuI0Es/wallpaper-editor-color-slidebar.html" title="Wallpaper Editor: Color slidebar" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_jEPICeL9B5g/TDqW2YIiewI/AAAAAAAAAGs/QoncM3ojB9Q/s72-c/Screen+shot+2010-07-11+at+11.14.23+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wallpaper-editor-color-slidebar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4FRHozeip7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-3075527339680949032</id><published>2010-07-11T21:11:00.000-07:00</published><updated>2010-07-11T21:11:55.482-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T21:11:55.482-07:00</app:edited><title>Wall paper Editor: Current state</title><content type="html">OK, I started my wallpaper editor a while ago and created a bunch of posts but didn't publish them, because I wanted things in a more stable state. &amp;nbsp;I now have a semi decent application, but it certainly needs more work. &amp;nbsp;I've published all my old posts, and uploaded the current source to&lt;br /&gt;
&lt;a href="http://bitbucket.org/jlundy/wallpapereditor"&gt;http://bitbucket.org/jlundy/wallpapereditor&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Current features&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;I can place multiple text items on the screen and move them around&lt;/li&gt;
&lt;li&gt;I can select an item, causing it to scroll to visibility, and display a toolbar over the keyboard for that item.&lt;/li&gt;
&lt;li&gt;I can pinch to change the size of items.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Needed features:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Next I need a color editor, something that allows me to select foreground and background colors.&lt;/li&gt;
&lt;li&gt;I need to change the text so that it can be resized, either automatically or manually.&lt;/li&gt;
&lt;li&gt;I need to port it to the ipad.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-3075527339680949032?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V9uCKs8MW0nnUTYTpRsPww6POPU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V9uCKs8MW0nnUTYTpRsPww6POPU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V9uCKs8MW0nnUTYTpRsPww6POPU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V9uCKs8MW0nnUTYTpRsPww6POPU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/bwElztzVTEQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/3075527339680949032/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-current-state.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/3075527339680949032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/3075527339680949032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/bwElztzVTEQ/wall-paper-editor-current-state.html" title="Wall paper Editor: Current state" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-current-state.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CRHo5cSp7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-4647951541332584898</id><published>2010-07-11T20:21:00.000-07:00</published><updated>2010-07-11T20:21:05.429-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:21:05.429-07:00</app:edited><title>Wallpaper Editor: Adding a toolbar with the keyboard</title><content type="html">Safari uses a toolbar directly over the keyboard. &amp;nbsp;I would like to do the same in a generic fashion. &amp;nbsp;The idea is that when the keyboard is displayed, I'll move a toolbar directly over the top of the keyboard. &amp;nbsp;I already have a routine that will move a view to expose items over the keyboard, so this is just an extension of this. &lt;br /&gt;
One additional characteristic is that I want to have the &lt;i&gt;option&lt;/i&gt; of choosing if I move the view to avoid the toolbar, or if I count the toolbar as part of the view.&lt;br /&gt;
&lt;br /&gt;
For now I'm going to assume that the toolbar will only be present when the keyboard is present, and will disappear when it is not present. &amp;nbsp;This seems like an intuitive behavior, and is how safari acts.&lt;br /&gt;
&lt;br /&gt;
I modify my KeyboardHelper class so that it has an additional properties: &lt;br /&gt;
UIToolbar *toolbar &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// a toolbar to display (if this is not null).&lt;br /&gt;
&lt;br /&gt;
I then modified my view display and remove so that the toolbar is either removed or displayed.&lt;br /&gt;
&lt;br /&gt;
At the top I calculate the toolbar size, and set an offset.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; toolbarLocation=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; toolbarOffset=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;toolbar&lt;span style="color: black;"&gt;!=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;toolbarOffset=&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;toolbarLocation=myFrame.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;+ myFrame.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-toolbarOffset;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Then when moving the views, I also use the toolbarOffset to move them. &amp;nbsp;It is either zero if no toolbar, or the size of the toolbar.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;For the first case of resizing the view, I use it directly.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(myFrame.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,myFrame.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;,myFrame.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;&amp;nbsp; myFrame.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-toolbarOffset);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;And for the second case of moving my view, I move it a little extra.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;bounds.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt; = &lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;window&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-toolbarOffset;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;toolbarLocation=&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;window&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;- bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-toolbarOffset;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I set an animation boolean if I'm starting an animation for my resize and then I&amp;nbsp;go ahead and display the toolbar when the keyboard shows up.&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;toolbar&lt;span style="color: black;"&gt;!=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (!inAnim)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;inAnim=&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;beginAnimations&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;context&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;superview&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationCurve&lt;span style="color: black;"&gt;:&lt;/span&gt;UIViewAnimationCurveEaseIn&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationDuration&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.15&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;.&lt;/span&gt;origin&lt;span style="color: black;"&gt;.&lt;/span&gt;x&lt;span style="color: black;"&gt;,toolbarLocation,&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;width&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;window&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;toolbar&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (inAnim)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;commitAnimations&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;Finally in keyboard disappearing, I remove my view if it is present.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Note I really don't have to check for nil, you can send a message to nil, but I think its good form to always check for nil, that way I don't start using a property (which will crash).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)keyboardDisappearing:(&lt;span style="color: #662ea7;"&gt;NSNotification&lt;/span&gt; *)notification {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (!&lt;/span&gt;useCenter&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;originalSize&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;else&lt;span style="color: black;"&gt; {&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;beginAnimations&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;context&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;superview&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationCurve&lt;span style="color: black;"&gt;:&lt;/span&gt;UIViewAnimationCurveEaseIn&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationDuration&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.15&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;superview&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;originalSize&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;commitAnimations&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;!=&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;toolbar&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;removeFromSuperview&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-4647951541332584898?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bGWgAWfqmwd9oZy-UhKkxRZDxdU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bGWgAWfqmwd9oZy-UhKkxRZDxdU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bGWgAWfqmwd9oZy-UhKkxRZDxdU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bGWgAWfqmwd9oZy-UhKkxRZDxdU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/XSgbPwV-hrU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/4647951541332584898/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wallpaper-editor-adding-toolbar-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/4647951541332584898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/4647951541332584898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/XSgbPwV-hrU/wallpaper-editor-adding-toolbar-with.html" title="Wallpaper Editor: Adding a toolbar with the keyboard" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wallpaper-editor-adding-toolbar-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BSXY8eip7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6049812090049590778</id><published>2010-07-11T20:20:00.004-07:00</published><updated>2010-07-11T20:20:58.872-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:20:58.872-07:00</app:edited><title>Wallpaper Editor: Creating a data model</title><content type="html">The next step is to create a data model that indicates allows for persistence of data. &amp;nbsp;In this case I have the idea of a hierarchical data structure, with common elements. &amp;nbsp;In this case we have&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;h1&gt;WallPaperInfo&lt;/h1&gt;&lt;br /&gt;
&lt;div&gt;The wallpaper info is the basic text information block that is present in a particular point on the screen. &amp;nbsp;This is what the user interacts with directly. &amp;nbsp;It has a rectangle (size and origin), as well as the text and style.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;WallPaper&amp;nbsp;Sets&lt;/h1&gt;&lt;br /&gt;
The wall paper set is a collection of WallPaperInfo items that is named. &amp;nbsp;The eventual goal is to have multiple sets which the user can select between and use.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;WallPaperStyle&lt;/h1&gt;&lt;br /&gt;
The wallpaper style defines the appearance of the wall paper info. &amp;nbsp;It includes font, font size, font color, background color, alpha etc.. &amp;nbsp; This is a named style so that you can quickly select between different styles, as well as creating new styles on the fly.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jEPICeL9B5g/TAs0Jd8zZjI/AAAAAAAAAFs/xD9UBjbB6O8/s1600/Screen+shot+2010-06-06+at+12.33.38+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_jEPICeL9B5g/TAs0Jd8zZjI/AAAAAAAAAFs/xD9UBjbB6O8/s320/Screen+shot+2010-06-06+at+12.33.38+AM.png" /&gt;&lt;/a&gt;&lt;/div&gt;The wallpaper info always lives within a set. &amp;nbsp;The style however is independent, they can exist without a wallpaper info, and can belong to multiple wallpaper infos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6049812090049590778?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mPmESRBipuFC1v14OQc6pw5XfRc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mPmESRBipuFC1v14OQc6pw5XfRc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mPmESRBipuFC1v14OQc6pw5XfRc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mPmESRBipuFC1v14OQc6pw5XfRc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/YXgECpCIkGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6049812090049590778/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wallpaper-editor-creating-data-model.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6049812090049590778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6049812090049590778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/YXgECpCIkGc/wallpaper-editor-creating-data-model.html" title="Wallpaper Editor: Creating a data model" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_jEPICeL9B5g/TAs0Jd8zZjI/AAAAAAAAAFs/xD9UBjbB6O8/s72-c/Screen+shot+2010-06-06+at+12.33.38+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wallpaper-editor-creating-data-model.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BQXs5eCp7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-8076712151214005790</id><published>2010-07-11T20:20:00.003-07:00</published><updated>2010-07-11T20:20:50.520-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:20:50.520-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="toolbars" /><category scheme="http://www.blogger.com/atom/ns#" term="wallpaper editor" /><category scheme="http://www.blogger.com/atom/ns#" term="dynamic toolbar with tap" /><title>Wall Paper Editor: Dynamic toolbar.</title><content type="html">OK, the next step is to change things so that instead of having an ugly button in the middle of the screen, I have a toolbar that can be shown or not show when the user does a single tap on the screen. This is a pretty common UI paradigm. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Creating toolbar in UIBuilder&lt;/h1&gt;&lt;br /&gt;
First I created a toolbar in UIBuilder. &amp;nbsp;I could have done it dynamically, but this way I can hook everything up in UI builder. &amp;nbsp;Note because of the way I'm doing this, I can have multiple toolbars in UIbuilder and switch between them.&lt;br /&gt;
&lt;br /&gt;
I hooked the toolbar up to the select picture, and added a new 'add text' window.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jEPICeL9B5g/TAsYgD21dCI/AAAAAAAAAFk/rT4Bk5Pe7Ak/s1600/Screen+shot+2010-06-05+at+10.39.34+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_jEPICeL9B5g/TAsYgD21dCI/AAAAAAAAAFk/rT4Bk5Pe7Ak/s320/Screen+shot+2010-06-05+at+10.39.34+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;For now it's pretty simple, but I will likely expand it, and create better icons later. &amp;nbsp;I add events to my view controller for the various actions.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Changing creation of my classes&lt;/h1&gt;&lt;br /&gt;
I change the creation of my views and variables so that I create a single view when the add button is chosen. &amp;nbsp;In addition I moved the creation of my various collections to viewDidLoad:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;viewDidLoad&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;...&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;currentViews&lt;/span&gt;&lt;span style="color: black;"&gt;=[[&lt;/span&gt;NSMutableArray&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;&lt;span style="color: black;"&gt;]&lt;/span&gt;&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;NSMutableSet&lt;span style="color: black;"&gt; *viewSet=[[&lt;/span&gt;NSMutableSet&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;&lt;span style="color: black;"&gt;]&lt;/span&gt;&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;viewMoveHandler&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;childViews&lt;/span&gt;&lt;span style="color: black;"&gt;=viewSet;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;IBAction&lt;/span&gt;) addWindow:(&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;)sender&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; *testView=[[&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;testView.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;multipleTouchEnabled&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;testView.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;,&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;,&lt;span style="color: #2600d5;"&gt;40&lt;/span&gt;,&lt;span style="color: #2600d5;"&gt;40&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt; &lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;:testView.&lt;span style="color: #37047f;"&gt;view&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;currentViews&lt;/span&gt; &lt;span style="color: #37047f;"&gt;addObject&lt;/span&gt;:testView];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;span style="color: #5e8087;"&gt;viewMoveHandler&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;childViews&lt;/span&gt; &lt;span style="color: #37047f;"&gt;addObject&lt;/span&gt;:testView.&lt;span style="color: #37047f;"&gt;view&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Intercepting single tap and displaying the toolbar&lt;/h1&gt;&lt;br /&gt;
Next I intercept the single tap and when it arrives check to see if I'm in a view. &amp;nbsp;If so act as previously, otherwise toggle my toolbar. &amp;nbsp; Note that my toolbar has to be set to be at the bottom of the view, otherwise it appears at the top (since it's origin is 0,0).&lt;br /&gt;
I modified singleTap to handle this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) singleTap:(&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt; *)subViewTapped&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Received single tap"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Go ahead and stop.&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;stopEditing&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// existing code.&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; *&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;in&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentViews&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;==subViewTapped)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;keyHelper&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;=&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;selectForEditing&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;break&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;==&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;windowControl&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;superview&lt;/span&gt;&lt;span style="color: black;"&gt;==&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;CGRect rect=windowControl.frame;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;rect.origin.x=0;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;rect.origin.y=self.view.bounds.size.height-windowControl.frame.size.height;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;windowControl.frame=rect;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;windowControl&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;span style="color: #a513a0;"&gt;else&lt;/span&gt; {&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;windowControl&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;removeFromSuperview&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-8076712151214005790?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9h40a-IGZYAQq7WTcskyCUhFwiE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9h40a-IGZYAQq7WTcskyCUhFwiE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9h40a-IGZYAQq7WTcskyCUhFwiE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9h40a-IGZYAQq7WTcskyCUhFwiE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/uH2GYQtVYz8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/8076712151214005790/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-dynamic-toolbar.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/8076712151214005790?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/8076712151214005790?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/uH2GYQtVYz8/wall-paper-editor-dynamic-toolbar.html" title="Wall Paper Editor: Dynamic toolbar." /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_jEPICeL9B5g/TAsYgD21dCI/AAAAAAAAAFk/rT4Bk5Pe7Ak/s72-c/Screen+shot+2010-06-05+at+10.39.34+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-dynamic-toolbar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ARX49fyp7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-5448998005237238852</id><published>2010-07-11T20:20:00.002-07:00</published><updated>2010-07-11T20:20:44.067-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:20:44.067-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wallpaper editor" /><category scheme="http://www.blogger.com/atom/ns#" term="views" /><category scheme="http://www.blogger.com/atom/ns#" term="keyboard helper" /><title>Wall Paper Editor: editing the text.</title><content type="html">I want to edit the text in place as much as possible, but it's quite possible, even likely, that the onscreen keyboard will interfere. &amp;nbsp;I want to then translate the view that I'm using so that the text field is fully visible, while also maintaining the background. &amp;nbsp; The approach I choose for this is to move the view so that the&lt;br /&gt;
bottom line of the text field is just over the keyboard (If, and only if, the keyboard obscures the text field). &amp;nbsp;This can result in the text field scrolling over the top if this is a large text field, later I might add an scaling factor, or just allow scrolling in the text field.&lt;br /&gt;
&lt;br /&gt;
For now I modified my KeyboardMover class so that it has two modes:&lt;br /&gt;
1) the previous behavior where it changes the size of the view&lt;br /&gt;
2) The new behavior so that it will calculate the bounds of the keyboard, and translate the superview of the given view, if there is a conflict:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// The keyboard helper is an object that when given a view will&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// resize that view when the keyboard appears or disappears.&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// The dealloc of this will unregister the notification.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@interface&lt;/span&gt; KeyboardHelper : NSObject {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;@private&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;UIView&lt;span style="color: black;"&gt; *&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;originalSize&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;bool&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;useCenter&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;,&lt;/span&gt;retain&lt;span style="color: black;"&gt;) UIView *view;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;@property&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;nonatomic&lt;/span&gt;) CGRect originalSize;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@property&lt;span style="color: black;"&gt; (&lt;/span&gt;nonatomic&lt;span style="color: black;"&gt;) &lt;/span&gt;bool&lt;span style="color: black;"&gt; useCenter;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;id&lt;/span&gt;) initWithView:(&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;*) viewToUse;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;@end&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #a513a0; font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The new keyboard appearing has two modes based on the boolean. &amp;nbsp;I will probably clean this up later on, but it's a working first draft. &amp;nbsp;It took a bit to get the view behavior correct.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #a513a0; font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #a513a0; font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #a513a0; font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)keyboardAppearing:(&lt;span style="color: #662ea7;"&gt;NSNotification&lt;/span&gt; *)notification {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSDictionary&lt;/span&gt; *keys=[notification&amp;nbsp; &lt;span style="color: #37047f;"&gt;userInfo&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; myFrame=[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt; &lt;span style="color: #37047f;"&gt;frame&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;originalSize&lt;span style="color: black;"&gt;=myFrame;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;NSValue&lt;span style="color: black;"&gt; *value=[keys &lt;/span&gt;&lt;span style="color: #37047f;"&gt;objectForKey&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;UIKeyboardBoundsUserInfoKey&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; bounds;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[value &lt;span style="color: #37047f;"&gt;getValue&lt;/span&gt;:&amp;amp;bounds];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (!&lt;/span&gt;useCenter&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(myFrame.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,myFrame.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;,myFrame.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;&amp;nbsp; myFrame.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;span style="color: #a513a0;"&gt;else&lt;/span&gt; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;CGRect&lt;span style="color: black;"&gt; myFrame=[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;superview&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;frame&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;originalSize&lt;span style="color: black;"&gt;=myFrame;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;NSValue&lt;span style="color: black;"&gt; *centervalue=[keys &lt;/span&gt;&lt;span style="color: #37047f;"&gt;objectForKey&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;UIKeyboardCenterEndUserInfoKey&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt; keyCenter;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[centervalue &lt;span style="color: #37047f;"&gt;getValue&lt;/span&gt;:&amp;amp;keyCenter];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"eky center x %f, y %f"&lt;/span&gt;,keyCenter.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,keyCenter.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"Old boudns (%f,%f) -- (%f,%f)"&lt;/span&gt;,bounds.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;,bounds.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;,bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;bounds.&lt;/span&gt;origin&lt;span style="color: black;"&gt;.&lt;/span&gt;y&lt;span style="color: black;"&gt; = &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;window&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;-bounds.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"New boudns (%f,%f) -- (%f,%f)"&lt;span style="color: black;"&gt;,bounds.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&amp;nbsp; bounds.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;,bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,bounds.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; viewInWindowCoords= [&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt; &lt;span style="color: #37047f;"&gt;convertRect&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;bounds&lt;/span&gt; &lt;span style="color: #37047f;"&gt;toView&lt;/span&gt;:&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #37047f;"&gt;window&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"View in windowcoords (%f,%f) -- (%f,%f)"&lt;span style="color: black;"&gt;,viewInWindowCoords.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&amp;nbsp; viewInWindowCoords.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;,viewInWindowCoords.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;,viewInWindowCoords.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; bottomY=viewInWindowCoords.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;+viewInWindowCoords.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (bounds.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt; &lt;bottomy)&gt;&lt;/bottomy)&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;beginAnimations&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;context&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;superview&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationCurve&lt;span style="color: black;"&gt;:&lt;/span&gt;UIViewAnimationCurveEaseIn&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationDuration&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.15&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;CGPoint&lt;span style="color: black;"&gt; newCenter=&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;superview&lt;span style="color: black;"&gt;.&lt;/span&gt;center&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;newCenter.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt; -= (bottomY-bounds.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;superview&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;center&lt;/span&gt;=newCenter;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;commitAnimations&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;And on the keyboard disappearing, just reset the view:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (!&lt;/span&gt;useCenter&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;originalSize&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;else&lt;span style="color: black;"&gt; {&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;beginAnimations&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;context&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;superview&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationCurve&lt;span style="color: black;"&gt;:&lt;/span&gt;UIViewAnimationCurveEaseIn&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;setAnimationDuration&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.15&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;superview&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;originalSize&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;commitAnimations&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium;"&gt;I enclosed the action in a simple animation, it makes it look much more natural.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #a513a0; font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-5448998005237238852?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9FaEm_H5Y6LW4ngtuHLBYr4LEBU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9FaEm_H5Y6LW4ngtuHLBYr4LEBU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9FaEm_H5Y6LW4ngtuHLBYr4LEBU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9FaEm_H5Y6LW4ngtuHLBYr4LEBU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/H4HBhLaQpDs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/5448998005237238852/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-editing-text_11.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/5448998005237238852?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/5448998005237238852?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/H4HBhLaQpDs/wall-paper-editor-editing-text_11.html" title="Wall Paper Editor: editing the text." /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-editing-text_11.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8HRn09cCp7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-3186865371451121336</id><published>2010-07-11T20:20:00.001-07:00</published><updated>2010-07-11T20:20:37.368-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:20:37.368-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touches" /><category scheme="http://www.blogger.com/atom/ns#" term="uiview" /><category scheme="http://www.blogger.com/atom/ns#" term="wallpaper editor" /><category scheme="http://www.blogger.com/atom/ns#" term="taps" /><title>Wall Paper Editor: editing text</title><content type="html">The next stage now that I can move views around is to enable editing text. &amp;nbsp;I modified the text view editor nib so that it now includes a UITextView as a member. &amp;nbsp;I disabled editing and user interaction, and eliminated the scrollbars. &amp;nbsp;I sized it to the full size of the view.&lt;br /&gt;
&lt;br /&gt;
Otherwise when the user attempted to drag the view, it would start editing instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_jEPICeL9B5g/TASJEgu1sZI/AAAAAAAAAFc/ScW4OiRUZ5c/s1600/Screen+shot+2010-05-31+at+11.13.31+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_jEPICeL9B5g/TASJEgu1sZI/AAAAAAAAAFc/ScW4OiRUZ5c/s320/Screen+shot+2010-05-31+at+11.13.31+PM.png" width="153" /&gt;&lt;/a&gt;&amp;nbsp;I have no scrolling, and the view itself has no interaction. &amp;nbsp;This way it is just a display for text. &amp;nbsp;I can programmatically control when it can be edited.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;h1&gt;View Mover -- register taps&lt;/h1&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;First the view mover was modified so that when a single tap is received it will call the proper routine in the delegate.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) touchesEnded:(&lt;span style="color: #662ea7;"&gt;NSSet&lt;/span&gt; *)touches withEvent:(&lt;span style="color: #662ea7;"&gt;UIEvent&lt;/span&gt; *)event&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"touches count %d, event touches for my view %d"&lt;span style="color: black;"&gt;,[touches &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;],&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&amp;nbsp; [[event &lt;/span&gt;touchesForView&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;parentView&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;count&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Handle single tap.&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; ([&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;delegate&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;respondsToSelector&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;@selector&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #3e585d;"&gt;singleTap&lt;/span&gt;&lt;span style="color: black;"&gt;:)])&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #662ea7;"&gt;UITouch&lt;/span&gt; *touch &lt;span style="color: #a513a0;"&gt;in&lt;/span&gt; touches)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (touch.&lt;span style="color: #662ea7;"&gt;tapCount&lt;/span&gt;==&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Sending singleTap"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;[&lt;/span&gt;delegate&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;singleTap&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;currentView&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;etc..&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;h1&gt;Controller use taps to set subview&lt;/h1&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;Next the controller was modified so that it would call new routines on the subview to enable input. &amp;nbsp;First it would tell any current view to stop editing, and then tell the a subview (if one was selected) to start editing. &amp;nbsp;Note that because single taps are registered anywhere on the UIImageView, this means that selecting something outside your current subview will cause they editing to stop.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) singleTap:(&lt;span style="color: #662ea7;"&gt;UIView&lt;/span&gt; *)subViewTapped&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Received single tap"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Go ahead and stop.&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3e585d;"&gt;stopEditing&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; *&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;in&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentViews&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;==subViewTapped)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3e585d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;selectForEditing&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;break&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;h1&gt;Subview respond to taps and enable input&lt;/h1&gt;&lt;h1&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;Two new routines exist to handle stopping and starting the taps. &amp;nbsp;Just so that I can visually see something happening, I also change the alpha and background color as the sequence occurs.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) selectForEditing&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;alpha&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.4&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;userInteractionEnabled&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;userInteractionEnabled&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;true&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;becomeFirstResponder&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) stopEditing&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;alpha&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #2600d5;"&gt;0.3&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;backgroundColor&lt;span style="color: black;"&gt;=[&lt;/span&gt;UIColor&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;greenColor&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;resignFirstResponder&lt;span style="color: black;"&gt;];&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;userInteractionEnabled&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;false&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;textView&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;userInteractionEnabled&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;false&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;/h1&gt;&lt;h1&gt;Known Bugs&lt;/h1&gt;&lt;br /&gt;
This has one major problem. &amp;nbsp;A view near the bottom will be hidden by the keyboard. &amp;nbsp;I need to change how things are displayed so that this does not occur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-3186865371451121336?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HWndqCEnl7jG2aPS81Mgu6Ux1rY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HWndqCEnl7jG2aPS81Mgu6Ux1rY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HWndqCEnl7jG2aPS81Mgu6Ux1rY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HWndqCEnl7jG2aPS81Mgu6Ux1rY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/SP_MC3MYkRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/3186865371451121336/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-editing-text.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/3186865371451121336?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/3186865371451121336?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/SP_MC3MYkRM/wall-paper-editor-editing-text.html" title="Wall Paper Editor: editing text" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_jEPICeL9B5g/TASJEgu1sZI/AAAAAAAAAFc/ScW4OiRUZ5c/s72-c/Screen+shot+2010-05-31+at+11.13.31+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-editing-text.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8FQnczeyp7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-929912922845704327</id><published>2010-07-11T20:20:00.000-07:00</published><updated>2010-07-11T20:20:13.983-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:20:13.983-07:00</app:edited><title>Wall Paper Editor: Pinches</title><content type="html">My view structure is complicated enough ( I think because of the number of views I have going around) that the [touches count] isn't always returning the proper number of touches, maybe because one of my fingers isn't moving. &amp;nbsp;THis resulted in very jerky code.&lt;br /&gt;
&lt;br /&gt;
I added the following log statement to touchesBegan and touchesMoved:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"In touchesBegan count =%d event touches count=%d"&lt;span style="color: black;"&gt;,[touches &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;],[[event &lt;/span&gt;&lt;span style="color: #37047f;"&gt;allTouches&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;This told me that I should really be looking at [event allTouches] for much of my behavior.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I then added the code&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: black; font-family: Times;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;touches=[event &lt;span style="color: #37047f;"&gt;allTouches&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;To my begin and moved events. &amp;nbsp;This resulted in MUCH smoother movement of stuff.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;My scaling is a bit strange, I think because of the multiplication effect, if I have a window with one larger dimension, the multiplication effect from&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// We should be able to scale up evenly this way.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; heightRatio=lastRect.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;/&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; widthRatio=lastRect.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;/&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; newWidth=&lt;span style="color: #5e8087;"&gt;imageStartSize&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;*widthRatio;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; newHeight=&lt;span style="color: #5e8087;"&gt;imageStartSize&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;*heightRatio;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Results in a strange scaling pattern. &amp;nbsp;If one of the imageStartSizes is significantly higher, then the ratio for&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;that one takes a beating. &amp;nbsp;Similarly a low starting value results in almost insignificant moves. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I still want be able to scale both height and width independently, but I need to make it smoother.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Instead of multiplying, I'm going to add:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;// We should be able to scale up evenly this way.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; dheight=lastRect.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; dwidth=lastRect.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;-&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; newWidth=&lt;span style="color: #5e8087;"&gt;imageStartSize&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;+dwidth;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; newHeight=&lt;span style="color: #5e8087;"&gt;imageStartSize&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;+dheight;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;This results in scaling that is directly proportional to the amount the user moves their fingers on the screen. &amp;nbsp;You can even get some fun move at a distance effects that might not be intuitive, but works fun.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(The other choice is to make the rectangle directly dependent on the points chosen. &amp;nbsp;This is probably more standard, and I might try it out later. &amp;nbsp;But first its time to refactor.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-929912922845704327?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PZh2LZ97P0Ou909_CU0ERhv9nKk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PZh2LZ97P0Ou909_CU0ERhv9nKk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PZh2LZ97P0Ou909_CU0ERhv9nKk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PZh2LZ97P0Ou909_CU0ERhv9nKk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/GUh699eXXLA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/929912922845704327/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-pinches.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/929912922845704327?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/929912922845704327?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/GUh699eXXLA/wall-paper-editor-pinches.html" title="Wall Paper Editor: Pinches" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/wall-paper-editor-pinches.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkANRHY_eip7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-6116393453680683656</id><published>2010-07-11T20:19:00.003-07:00</published><updated>2010-07-11T20:19:55.842-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:19:55.842-07:00</app:edited><title>Lock Screen Maker: A resizeble view</title><content type="html">The next step is to allow a pinching motion to resize the view. &amp;nbsp;This is slightly more advanced, but still standard Apple behavior.&lt;br /&gt;
&lt;br /&gt;
I'm going to implement this, but I'm not going to make a very nice set of classes for it. &amp;nbsp;Apple has implemented a very nice set of UIGestureRecognizer classes for handling all sorts of gestures. &amp;nbsp;Their code is going to be better than anything I could write.&lt;br /&gt;
&lt;br /&gt;
However one of my target platforms is the current iPhone, which does NOT YET have these. &amp;nbsp;They are present for the iPad, and will presumably be available in future versions of iPhone OS, but not 3.1.3.&lt;br /&gt;
&lt;br /&gt;
So what I'm going to do is define a simple protocol for my view for receiving the gestures I want. &amp;nbsp;I will then make a 'gesture handling' class that receives these gestures. &amp;nbsp; This will either use the UIGestureRecognizer classes if available, or have my own somewhat simpler state machine for this.&lt;br /&gt;
&lt;br /&gt;
I'll put this into my JLFoundation library so it can be available for multiple projects. &amp;nbsp;This way I can do what I need for now, while maintaining a path forward to switch to the new classes when they become available.&lt;br /&gt;
&lt;br /&gt;
The first draft of this had some problems, but I got it working somewhat. &amp;nbsp;Next I will separate it out into another class, and debug it.&lt;br /&gt;
&lt;br /&gt;
While I followed examples I found of pinch behavior, the problem I ran into is that my graphics would sometimes detect a 1 touch move on alternating fingers. &amp;nbsp;This was annoying, I suspect its because either some events are being intercepted by other views, or that I'm only getting an update for one of the views.&lt;br /&gt;
&lt;br /&gt;
The current code for pinching:&lt;br /&gt;
Not that for my pinches I want to be able to change size and height as well as overall size. &amp;nbsp;In addition when the point moves around I want to move the entire rectangle with it.&lt;br /&gt;
I overrode the 3 of the 4 major touch events, as well as a few utility routines:&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Touches Began&lt;/h1&gt;&lt;br /&gt;
Detect touches. &amp;nbsp;Find how many touches we have, and find the best view.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)touchesBegan:(&lt;span style="color: #662ea7;"&gt;NSSet&lt;/span&gt; *)touches withEvent:(&lt;span style="color: #662ea7;"&gt;UIEvent&lt;/span&gt; *)event {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"In touchesBegan count =%d"&lt;span style="color: black;"&gt;,[touches &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// We will do some stuff here.&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// We only support single touches, so anyObject retrieves just that touch from touches&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; ([touches &lt;span style="color: #37047f;"&gt;count&lt;/span&gt;]==&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt; [&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;findPinchView&lt;/span&gt;:touches];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;         &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; }&lt;span style="color: #a513a0;"&gt;else&lt;/span&gt; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; ([touches &lt;span style="color: #37047f;"&gt;count&lt;/span&gt;]==&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; *&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;in&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;currentViews&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITouch&lt;/span&gt; *touch = [touches &lt;span style="color: #37047f;"&gt;anyObject&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (touch==&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"NillTouch"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt; location = [touch &lt;span style="color: #37047f;"&gt;locationInView&lt;/span&gt;:&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt; ];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;NSLog(@"%@",location);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;==&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"NilView"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;==&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"NilView.view"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (&lt;span style="color: #37047f;"&gt;CGRectContainsPoint&lt;/span&gt;(&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;, location))&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;break&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Touches &amp;nbsp;Moved&lt;/h1&gt;&lt;br /&gt;
Here I'm detecting touches moving, and if I have two touches I do a pinch, and for 1 touch I do a move. &amp;nbsp;Note that this current code has a bug. &amp;nbsp;SOmetimes there are two touches on the screen but [touches count] only returns 1. &amp;nbsp;It seems to flicker between the two. &amp;nbsp;Note also that sometimes I would get [touches count]==2 without EVER calling TouchesBegan with two touches. &amp;nbsp;Each of the two touches was a separate touches begin, but never had two.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)touchesMoved:(&lt;span style="color: #662ea7;"&gt;NSSet&lt;/span&gt; *)touches withEvent:(&lt;span style="color: #662ea7;"&gt;UIEvent&lt;/span&gt; *)event {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; ([touches &lt;span style="color: #37047f;"&gt;count&lt;/span&gt;]==&lt;span style="color: #2600d5;"&gt;2&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Doing pinch"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;NSArray&lt;/span&gt; *objects=[touches &lt;span style="color: #37047f;"&gt;allObjects&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITouch&lt;/span&gt; *f1=[objects &lt;span style="color: #37047f;"&gt;objectAtIndex&lt;/span&gt;:&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;UITouch&lt;/span&gt; *f2=[objects &lt;span style="color: #37047f;"&gt;objectAtIndex&lt;/span&gt;:&lt;span style="color: #2600d5;"&gt;1&lt;/span&gt;];&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt;&lt;span style="color: black;"&gt; p1=[f1 &lt;/span&gt;locationInView&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt;&lt;span style="color: black;"&gt; p2=[f2 &lt;/span&gt;locationInView&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGRect&lt;/span&gt; lastRect=[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;makeRect&lt;/span&gt;:p1 &lt;span style="color: #3e585d;"&gt;point2&lt;/span&gt;:p2];&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (!&lt;/span&gt;inPinch&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt; &lt;span style="color: #3e585d;"&gt;findPinchView&lt;/span&gt;:touches];&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;// Nothing more to be done here.&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// We should be able to scale up evenly this way.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; heightRatio=lastRect.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;/&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; widthRatio=lastRect.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;/&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; newWidth=&lt;span style="color: #5e8087;"&gt;imageStartSize&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;*widthRatio;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt; newHeight=&lt;span style="color: #5e8087;"&gt;imageStartSize&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;*heightRatio;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// We calculate scales based on the size of the pinch, but apply the scales to the image being&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// manipulated.&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (newWidth&amp;lt;&lt;span style="color: #2600d5;"&gt;5&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;newWidth=&lt;span style="color: #2600d5;"&gt;5&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (newHeight&amp;lt;&lt;span style="color: #2600d5;"&gt;5&lt;/span&gt;)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;newHeight=&lt;span style="color: #2600d5;"&gt;5&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (newWidth&amp;gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;width&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;newWidth=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;width&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (newHeight&amp;gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;size&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;height&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #662ea7; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;newHeight=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;view&lt;span style="color: black;"&gt;.&lt;/span&gt;frame&lt;span style="color: black;"&gt;.&lt;/span&gt;size&lt;span style="color: black;"&gt;.&lt;/span&gt;height&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt;&lt;span style="color: black;"&gt; dx=&lt;/span&gt;CGRectGetMidX&lt;span style="color: black;"&gt;(lastRect)-&lt;/span&gt;CGRectGetMidX&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #37047f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;double&lt;/span&gt;&lt;span style="color: black;"&gt; dy=&lt;/span&gt;CGRectGetMidY&lt;span style="color: black;"&gt;(lastRect)-&lt;/span&gt;CGRectGetMidY&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #5e8087;"&gt;startRect&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;&lt;span style="color: black;"&gt; =&lt;/span&gt;&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;imageStartSize&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #662ea7;"&gt;x&lt;/span&gt;&lt;span style="color: black;"&gt;+dx,&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;            &lt;/span&gt;lastRect.&lt;span style="color: #662ea7;"&gt;origin&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;y&lt;/span&gt;+dy,&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;            &lt;/span&gt;newWidth,&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;        &lt;/span&gt;newHeight);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;span style="color: #a513a0;"&gt;else&lt;/span&gt; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; (!&lt;span style="color: #5e8087;"&gt;inPinch&lt;/span&gt;) {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Doing move "&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;UITouch&lt;/span&gt; *touch = [touches &lt;span style="color: #37047f;"&gt;anyObject&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// If the touch was in the placardView, move the placardView to its location&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;!=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt; location = [touch &lt;span style="color: #37047f;"&gt;locationInView&lt;/span&gt;:&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt; ];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #5e8087;"&gt;currentPinchView&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;center&lt;/span&gt; = location; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #a513a0; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Touches Ended&lt;/h1&gt;&lt;br /&gt;
In this code I attempt to detect touches ended. &amp;nbsp;The code here, is from Apples website, and it improved my detection of a real end, however it wasn't completely perfect.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;) touchesEnded:(&lt;span style="color: #662ea7;"&gt;NSSet&lt;/span&gt; *)touches withEvent:(&lt;span style="color: #662ea7;"&gt;UIEvent&lt;/span&gt; *)event&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;{&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"touches count %d, event touches for my view %d"&lt;span style="color: black;"&gt;,[touches &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;], [[event &lt;/span&gt;&lt;span style="color: #37047f;"&gt;touchesForView&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;span style="color: #37047f;"&gt;image&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; ([touches &lt;span style="color: #37047f;"&gt;count&lt;/span&gt;] == [[event &lt;span style="color: #37047f;"&gt;touchesForView&lt;/span&gt;:&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #37047f;"&gt;image&lt;/span&gt;] &lt;span style="color: #37047f;"&gt;count&lt;/span&gt;])&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;(&lt;span style="color: #ba2e1d;"&gt;@"Event %@"&lt;/span&gt;,event);&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;currentPinchView&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #a513a0;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #ba2e1d; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"In Touches ended count=%d"&lt;span style="color: black;"&gt;,[touches &lt;/span&gt;&lt;span style="color: #37047f;"&gt;count&lt;/span&gt;&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt; &amp;nbsp; &lt;/span&gt;inPinch&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #6f4a2c;"&gt;false&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;}&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Find best view&lt;/h1&gt;&lt;br /&gt;
I want to find the best view for pinch. &amp;nbsp;In this case it might NOT be a pinch located on the view itself, but around it. &amp;nbsp;In this case I look at all the current views and find the closest match (in area) for the pinches. &amp;nbsp;I make use of the rectangle routines for this.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Make rectangle&lt;/h1&gt;&lt;br /&gt;
This utility routine takes two touches and constructs a rectangle for it.&lt;br /&gt;
In addition I made the views not respond to touches so that the movement behavior made sense.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-6116393453680683656?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LY3uPOhOCx4E_lX-6LkPNrzqxZ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LY3uPOhOCx4E_lX-6LkPNrzqxZ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LY3uPOhOCx4E_lX-6LkPNrzqxZ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LY3uPOhOCx4E_lX-6LkPNrzqxZ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/A0ALW5ALVRQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/6116393453680683656/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/lock-screen-maker-resizeble-view.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6116393453680683656?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/6116393453680683656?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/A0ALW5ALVRQ/lock-screen-maker-resizeble-view.html" title="Lock Screen Maker: A resizeble view" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/lock-screen-maker-resizeble-view.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkADSXs_eyp7ImA9WxFbGU0.&quot;"><id>tag:blogger.com,1999:blog-686619119323333549.post-619680031908498952</id><published>2010-07-11T20:19:00.002-07:00</published><updated>2010-07-11T20:19:38.543-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-11T20:19:38.543-07:00</app:edited><title>Lock screen maker: A movable view</title><content type="html">For the next step I want to have multiple views that I can click on and move, or click and edit.&lt;br /&gt;
&lt;br /&gt;
This will need to be a new class, which has some simple characteristics. &lt;br /&gt;
&lt;br /&gt;
I made a subclass of UIView for this. &amp;nbsp;The UIView will respond to gestures. &lt;br /&gt;
&lt;br /&gt;
To start with I looked at the &lt;a href="https://developer.apple.com/iphone/library/samplecode/MoveMe/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007315-Intro-DontLinkElementID_2"&gt;Move Me&lt;/a&gt; example from Apple.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Tap&lt;/h1&gt;&lt;br /&gt;
Tap will start editing the textfield in the UIView.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Hold and move&lt;/h1&gt;&lt;br /&gt;
This will allow the view to be moved around the screen.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Pinch in or out&lt;/h1&gt;&lt;br /&gt;
This will cause the view to grow or shrink&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Double Tap&lt;/h1&gt;&lt;br /&gt;
This will allow color and font editing through a separate dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Step 1 A movable view&lt;/h1&gt;&lt;br /&gt;
&lt;br /&gt;
The first stage will be to create a simple class that can be moved. &amp;nbsp;I created a very elementary .nib file, it consists of a view with a text field that fills it. &amp;nbsp;I then created a corresponding class in the controller that does the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;- (&lt;span style="color: #a513a0;"&gt;void&lt;/span&gt;)touchesMoved:(&lt;span style="color: #662ea7;"&gt;NSSet&lt;/span&gt; *)touches withEvent:(&lt;span style="color: #662ea7;"&gt;UIEvent&lt;/span&gt; *)event {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;UITouch&lt;/span&gt; *touch = [touches &lt;span style="color: #37047f;"&gt;anyObject&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #418715; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// If the touch was in the placardView, move the placardView to its location&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;if&lt;/span&gt; ([touch &lt;span style="color: #37047f;"&gt;view&lt;/span&gt;] == &lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;) {&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #662ea7;"&gt;CGPoint&lt;/span&gt; location = [touch &lt;span style="color: #37047f;"&gt;locationInView&lt;/span&gt;:&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;superview&lt;/span&gt; ];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;center&lt;/span&gt; = location; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a513a0;"&gt;return&lt;/span&gt;;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;That's all you need to have a touch move your view. &amp;nbsp;Of course this only does move, but it's a start. &amp;nbsp;Everything else in this class is a standard view controller.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;I then modified my previous routine to do the following:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px;"&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #a513a0;"&gt;for&lt;/span&gt; (&lt;span style="color: #a513a0;"&gt;int&lt;/span&gt; i=&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: #2600d5;"&gt;10&lt;/span&gt;;i++)&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #5e8087; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; *testView=[[&lt;/span&gt;TextDisplayView&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #37047f;"&gt;alloc&lt;/span&gt;&lt;span style="color: black;"&gt;] &lt;/span&gt;&lt;span style="color: #37047f;"&gt;init&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;testView.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;frame&lt;/span&gt;=&lt;span style="color: #37047f;"&gt;CGRectMake&lt;/span&gt;(&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;,&lt;span style="color: #2600d5;"&gt;0&lt;/span&gt;,&lt;span style="color: #2600d5;"&gt;40&lt;/span&gt;,&lt;span style="color: #2600d5;"&gt;40&lt;/span&gt;);&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;[&lt;span style="color: #a513a0;"&gt;self&lt;/span&gt;.&lt;span style="color: #662ea7;"&gt;view&lt;/span&gt; &lt;span style="color: #37047f;"&gt;addSubview&lt;/span&gt;:testView.&lt;span style="color: #37047f;"&gt;view&lt;/span&gt;];&lt;/div&gt;&lt;div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;This gives me 10 small white view that I can pick up and move.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/686619119323333549-619680031908498952?l=iphonedevelopmentexperiences.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WZ6f_ffMA1-gHfhjn2LbMuY4qak/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WZ6f_ffMA1-gHfhjn2LbMuY4qak/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WZ6f_ffMA1-gHfhjn2LbMuY4qak/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WZ6f_ffMA1-gHfhjn2LbMuY4qak/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/IphoneDevelopmentExperiences/~4/6J5kGjd9KV8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://iphonedevelopmentexperiences.blogspot.com/feeds/619680031908498952/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://iphonedevelopmentexperiences.blogspot.com/2010/07/lock-screen-maker-movable-view.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/619680031908498952?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/686619119323333549/posts/default/619680031908498952?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/IphoneDevelopmentExperiences/~3/6J5kGjd9KV8/lock-screen-maker-movable-view.html" title="Lock screen maker: A movable view" /><author><name>Jon Lundy</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://iphonedevelopmentexperiences.blogspot.com/2010/07/lock-screen-maker-movable-view.html</feedburner:origLink></entry></feed>

