Ipphones

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Monday, 2 February 2009

Longer Spinning & Blurring v2.0

Posted on 07:11 by Unknown
In the comments to my last post, a few things were pointed out by readers.

First and foremost was that by changing the spin duration of the picker view, when a user manually moved a component, it would take five seconds to settle into its new position. Well, that's no good.

Here's a new version that resolves that issue.

Unfortunately, as far as I could tell, there is no way to get the picker view to change the spin duration during the run. You can return conditional values in the method, but the picker view never checks for changed values after it loads. My solution is a bit of a hack, but it works. There are two picker views - a normal one, and one using the longer-spinning subclass. They use the same data source and delegate and show the same data. When one changes, the other changes as well. The user interacts with the normal one, but when the shake or press the Spin button, the short one is hidden and the long one is unhidden, then after the spin, the long one is hidden and the normal one is unhidden. The user never sees the change, but now the behavior is correct in both manual and automatic situations.

Now, one thing to note here - A single view can't be shown on the screen twice. Currently, I have two sets of the arrays holding the data, one for each picker view. I think it might be possible to use a single one by manually having the picker views reload their data when they are unhidden, but for now, this works.

The other thing that was pointed out to me in the previous comments is that UrbanSpoon doesn't actually do anything anywhere near this complex. They use images to simulate the spinning using animation. That's a fine approach, but given the memory constraints of the iPhone and the leakiness of UIImageView animation on at least some versions of the SDK, I think I would do it this way and avoid using five megs or so worth of pre-rendered animations.
Email ThisBlogThis!Share to XShare to Facebook
Posted in UIPickerView | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Making OpenGL ES Screenshot
    The Bit-101 Blog has an entry that shows how to take a screenshot when using OpenGL ES . I tested this in my much-delayed particle-generato...
  • Adding CLANG to Your Build Process
    Frasier Spiers has a nifty piece this morning on using Git pre-commit hooks to automatically run the CLANG Static Analyzer. I'm not a G...
  • CLANG Static Analyzer
    If you aren't using the LLVM/Clang Static Analyzer , you really should be. The Clang Project is an attempt to write a front end for the...
  • A Little Help
    I'm having a problem with OpenGL ES, and it's keeping me from finishing my particle engine post. I was hoping someone here could see...
  • WWDC Accommodations
    Staying downtown in San Francisco is very expensive in the summertime. Bu, if you're going to WWDC, you really want to stay downtown. Yo...
  • Xcode File Templates and a Mystery
    One of the things that confuses many newcomers to Xcode is how to set it up so that your company name gets automatically filled in when you ...
  • Brain Surgery?
    Craig Hockenberry has an interesting post on his blog today about the iPhone background processing issue. Craig speaks from personal experi...
  • Book's Almost Done
    I just finished Chapter 16. I'll give it another read-over in the morning then it will go off to my writing partner for his review, then...
  • iPhone Alley
    Looks like Dave and I are going to make an appearance on the iPhone Alley Podcast next week. We're recording on Sunday night, so I woul...
  • Shuffling Arrays
    Ever want to randomize an array of items? It's a task that, for some reason, I've had to do a lot in recent programs. So, I wrote a ...

Categories

  • 3D Models
  • Ad Hoc Distribution
  • ADC
  • Address Book
  • Amazon
  • Anaglyphs
  • App Store
  • Apple
  • Apple DTS
  • Apple Store
  • Application Store
  • articles
  • Award
  • Background Processing
  • Barcodes
  • Beta
  • Blog
  • Blogger
  • Blogging
  • Blogs
  • Blogspot
  • Book project
  • Bug Reporting
  • Captain Obvious
  • Categories
  • Censorship
  • CFFoundation
  • CGAffineTransform
  • Clang Static Analyzer
  • Cocoa
  • Cocoa Touch
  • Code Reuse
  • Code Signing
  • Computer
  • conferences
  • Controller Classes
  • Core Animation
  • Daring Fireball
  • Database
  • Debugging
  • Defect
  • Delegates
  • Design Awards
  • Developer Certifications
  • Discussion Forums
  • Edit Mode
  • employment opportunities
  • Encryption
  • Enterprise
  • Errata
  • free code
  • Free software
  • Full Screen
  • Game Programming
  • Gestures
  • Getting Started
  • goof
  • Google Code
  • Google Maps
  • Gotcha
  • Help
  • HIG
  • HTTP PUT
  • Idiots
  • Idle Timer
  • Images
  • Instruments
  • Interface Builder
  • iPHone
  • iPhone Applications
  • iPhone Dev Center
  • iPhone Developers
  • iPhone OS 3.0
  • iPhone SDK
  • iPhone SDK PNG
  • iPhone Simulator
  • iPhoneSDK
  • iPod
  • Job Opportunities.
  • k
  • Key Value Observing
  • Keynote
  • KVO
  • Landscape Mode
  • Learn Cocoa
  • Learn Cocoa on the Mac
  • libxml
  • Licensing
  • Mac Developers
  • Mac OS X
  • Macworld Expo
  • Microsoft
  • NDA
  • NeHe
  • New Category
  • New Release
  • NSFileHandle
  • NSMutableArray
  • NSMutableURLRequest
  • NSXML
  • Object-Oriented Design
  • Objective-C
  • Open Source
  • OpenGL ES
  • Optimizations
  • Other blogs
  • Paired Arrays
  • Parsing
  • Particle Engine
  • Party
  • PeopleSoft
  • Performance
  • Persistence
  • Pink Screen of Death
  • Piracy
  • Pixar
  • Podcasts
  • Press Release WTF
  • Press Releases WTF
  • private APIs Google
  • Project Template
  • Properties
  • Random Numbers
  • Rant
  • Rejected
  • Resources
  • Responder Chain
  • REST
  • Reverse Engineering
  • Rumors
  • Runtime
  • Sample Code
  • Screencast
  • screenshot
  • Scroll Views
  • snippet
  • Snow Leopard.
  • SOAP
  • Sockets
  • Source
  • Splash Screen
  • SQLite
  • SQLitePersistentObjects
  • Steve Jobs
  • Steve-Note
  • Strings
  • Stupidity
  • Subversion
  • Table Views
  • Taps
  • Template
  • Tip
  • Tips
  • Tririga
  • tutorials
  • Twitter
  • UIAlertView
  • UIColor
  • UIImage
  • UIPickerView
  • UIScrollView
  • UITextField
  • UIView
  • UIWebView
  • Update
  • Utilities
  • UUID
  • Vacation
  • Version Control
  • Web Services
  • Writing
  • WTF
  • WWDC
  • Xcode
  • XML

Blog Archive

  • ▼  2009 (141)
    • ►  May (14)
    • ►  April (30)
    • ►  March (48)
    • ▼  February (26)
      • 360 iDev Conference, T-Minus 18 hours
      • Mapping Directions from your App
      • Reusable Code in Google Code
      • Alert View with Prompt
      • Editable Select List
      • BWToolkit
      • Asynchronous Downloading of Images in a Table View
      • Rogue Amoeba is Hiring
      • Cross Development Hint
      • Making OpenGL ES Screenshot
      • Programmatically Drawing Gloss Gradients
      • All Generic Controllers to Date (Zip File)
      • Generic Selection List Controller
      • Computer Books & the Economy
      • What Are All the Cool Kids Doing These Days?
      • 360 iDev Conferences
      • Strong Encryption for Cocoa / Cocoa Touch
      • CLANG Static Analyzer
      • Long Text Generic Editing Controller
      • Same but Different
      • Accessorizer
      • Gameplay Videos
      • KVO and the iPhone SDK
      • Learn Cocoa
      • SQLitePersistentObjects Update
      • Longer Spinning & Blurring v2.0
    • ►  January (23)
  • ►  2008 (163)
    • ►  December (46)
    • ►  November (25)
    • ►  October (44)
    • ►  September (2)
    • ►  August (5)
    • ►  July (2)
    • ►  June (9)
    • ►  May (2)
    • ►  April (11)
    • ►  March (17)
Powered by Blogger.

About Me

Unknown
View my complete profile