Централизация 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 при ротации и повторному отображению - этот подход кажется принципиальным в принципе.