Централизация UIActionSheet при вращении

Несколько других задали этот вопрос, но на него никогда не отвечали. Проблема кажется тривиальной, но она не была рассмотрена в документации Apple или в других местах.

Я представляю свой экземпляр UIActionSheet с помощью метода showInView:

    UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"Test" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destroy" otherButtonTitles:@"One", @"Two", nil];

    [myActionSheet showInView:self.view];

Рисунок UIActionSheet отображается в центре в зависимости от того, какая ориентация запускается, но когда я поворачиваю iPad, он отображается в правом верхнем или нижнем левом углу (в зависимости от того, изменилась ориентация на портретную или альбомную).

Такое поведение можно ожидать, если бы для авторезистирующих масок были установлены значения UIViewAutoresizingFlexibleBottomMargin и UIViewAutoresizingFlexibleRightMargin, что является значением autoresizingMask по умолчанию для большинства элементов представления, поэтому я попытался сбросить значение, вызвав метод setAutoresizingMask на экземпляр UIActionSheet.

[myActionSheet setAutoresizingMask:UIViewAutoresizingNone];

Но ни это, ни какое-либо другое значение для Autoresizing Mask не имеет каких-либо изменений.

Есть ли какое-либо решение этой проблемы? Я бы предпочел не прибегать к увольнению таблицы UIActionSheet при ротации и повторному отображению - этот подход кажется принципиальным в принципе.

Ответы