autoresizingMask для фиксированных размеров полей

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

Portait

Пейзаж

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

1 ответ

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

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

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

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

Другие вопросы по тегам