Есть ли в iPhone OS менеджеры компоновки ограничений?

В руководстве по программированию CA говорится о менеджерах компоновки ограничений. Однако CALayer в iPhone SDK не имеет свойства constraints или метода addConstraint.

Говорят, что в iPhone OS просто нет настраиваемых менеджеров компоновки. А как насчет стандартных?


person Thanks    schedule 25.07.2009    source источник


Ответы (3)


К сожалению, несмотря на то, что об этом говорится в документации, в реализации CALayer для iPhone отсутствует даже расположение слоев с пружинами и стойками. Это видно по отсутствующему свойству autoresizingMask в CALayer на iPhone.

Для Core Plot мы реализовали собственный макет настраиваемого слоя с помощью метода -layoutSublayers в CALayer. . Класс CPLayer предоставляет пример этот подход.

person Brad Larson    schedule 25.07.2009
comment
Очень интересный материал, Брэд! - person Thanks; 25.07.2009

Единственный метод, который вы можете использовать для позиционирования видов / слоев относительно их супервизора / суперслоя, - это модель пружин и распорок. Диспетчеры пользовательского макета недоступны на iPhone.

person Nathan de Vries    schedule 25.07.2009
comment
то есть с использованием масок с автоизменением размеров? - person Thanks; 25.07.2009
comment
Да - для Core Animation это означает использование маски в соответствии с константами, определенными в CAAutoresizingMask. - person Nathan de Vries; 25.07.2009
comment
Документация на самом деле неверна в этом отношении. autoresizingMask недоступен как свойство в CALayer на iPhone, поэтому нет возможности даже сделать макет слоев пружинами и стойками. - person Brad Larson; 25.07.2009

Поддержка компоновки Springs и Struts доступна через свойство autoresizingMask UIView.

person Frogblast    schedule 25.07.2009