autoresizingMask для фиксированных размеров полей - PullRequest
3 голосов
/ 17 августа 2010

В представлении, содержащем несколько подпредставлений, одно из подпредставлений должно оставаться на фиксированном ненулевом расстоянии от верха и низа суперпредставления.На этих изображениях этот вид показан серым цветом:

Portait

Landscape

Согласно документации, этот вид должен иметь маску UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth,Однако это заставляет представление увеличивать его высоту, чтобы охватить все суперпредставление.Как можно содержать представление с фиксированными, но ненулевыми полями?Благодаря.

1 Ответ

2 голосов
/ 18 августа 2010

UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth должно работать.

Однако есть ошибка с автоматическим изменением размера UIView, когда высота / ширина родительского представления становятся маленькими (и все ломается, когда становится нулевым) - это может быть просто UIViewвысота / ширина не может быть отрицательной.

Я сталкивался с этой проблемой при выполнении initWithFrame: CGRectZero;это также может произойти, если вы используете что-то вроде subview.frame = self.bounds, когда self.bounds имеет значение CGRectZero (или иным образом маленькое).

Мой метод отладки bruteforce будет переопределять setFrame: и setBounds: для добавления NSLog.

...