I have a view with some very complex drawing logic (it\'s a map view that draws from GIS data). Doing this drawing on the main thread locks up the UI and makes the app unres
Beyond iOS 4.0, drawing is thread safe. You might need to create a CGContext yourself, but there is no reason you cannot draw on a background thread.
That said, most UIKit operations are not. If you need to do those, you can always prepare in a background thread, and then use performOnMainThread when needed. There's even waitUntilDone. That said, you should use NSOperation and NSOperationQueue, apparently.