Автоматическое изменение размера подпредставлений при повороте устройства - PullRequest
2 голосов
/ 23 сентября 2010

Все мои подпредставления настроены так, что они основаны на self.view.

EG: UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,(self.view.frame.size.width-20),(self.view.frame.size.height-90))];

однако, когда представление вращается (shouldRotateToDeviceOrientation или что-то еще), все представления остаются одинакового размера. Как я могу заставить их изменить форму, чтобы соответствовать? Могу ли я сделать это автоматически?

Спасибо

Ответы [ 3 ]

2 голосов
/ 23 сентября 2010

Абсолютно. Взгляните на свойство autoresizingMask. Если вы установите в своем представлении изображения, в этом случае, маску авторазмера, равную UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight, то тогда, когда размер ее родительского вида изменится (как это может происходить или может не произойти автоматически при вращении вашего приложения, возможно, вам придется установить аналогичный * 1003). * в родительском представлении), он будет поддерживать внешние поля, которые вы для него настроили.

1 голос
/ 17 января 2014

На всякий случай, если у вас есть вид внизу родительского вида, это должно помочь:

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;

Где self - это вид вашего ребенка, размер которого нужно изменить.Если вы не установите UIViewAutoresizingFlexibleTopMargin, то в горизонтальном режиме вы не увидите свой вид, если он был в нижней части в вертикальном режиме.

Также не забудьте установить:

self.autoresizesSubviews = YES;

И режимы автоматического изменения размера для всех дочерних видов в вашем представлении.Так что при изменении размера все внутри него также изменяется.

0 голосов
/ 23 сентября 2010

нужно [view setAutoresizingMask:...]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...