NSTimer and NSRunLoop
When working with NSTimers that should update certain stuff in the UI, don't forget to add your timer to the corresponding NSRunLoop mode:
NSRunLoop *runloop = [NSRunLoop currentRunLoop]; [runloop addTimer:self.frameTimer forMode:NSRunLoopCommonModes]; [runloop addTimer:self.frameTimer forMode:UITrackingRunLoopMode];
Otherwise your timer won't fire while the user interacts with your controls.














