Насколько я понимаю, что вы написали, ваше приложение слишком чувствительно, когда устройство поворачивается? Трудно понять, почему это так; код, который вы включили, утверждает, что ваше приложение готово принять любую ротацию, но вы не указали, как вы будете обращаться с событиями ротации впоследствии.
Основываясь на информации, я могу только предложить, чтобы вы добавили проверку в свой код (возможно, где происходит событие поворота) и получили ориентацию с устройства, используя:
[[UIDevice currentDevice] orientation];
, который будет возвращать перечисление UIInterfaceOrientation, указывающее текущую ориентацию устройства.
UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight
Затем вы можете использовать это, чтобы определить, нужно ли менять ориентацию. (Примечание: это iPhone OS 2.0. Я считаю, что OS 3.0 имеет больше возможностей, в том числе лежа наверху / вниз и т. Д.)
- (void) didRotate:(NSNotification *)notification
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationLandscapeRight)
{
NSLog(@"Landscape Right!");
}
}
Если вы обнаружите, что ориентация переключается слишком быстро, возможно, вы захотите буферизовать информацию, создав несколько точек выборки, которые вы можете сравнить перед переключением на новую ориентацию.