Hasta ahora la única forma de trabajar con instancias de iOSLayoutConstraints por nombre era asignándoselo mediante el Panel Inspector en tiempo de diseño de la aplicación. De esta forma posteriormente se podían utilizar los nombres asignados para operar sobre los iOSLayoutConstraint asociados: activarlos, desactivarlos o bien eliminarlos de la MobileScreen o MobileUIControl al que estuviesen asignados. ¡Muy útil! Pero, ¿y cuando se trata de instancias iOSLayoutConstraint creadas en código?
Por supuesto, son varias las opciones de implementación que tienes a tu alcance a la hora de mantener y referenciar las instancias iOSLayoutConstraint creadas en código, de modo que te resulte más sencillo operar sobre ellas del mismo modo que lo harías con las creadas y asignadas en tiempo de diseño mediante el Panel Inspector; pero a partir de Xojo 2025r2… ¡lo tendrás más sencillo!
Por ejemplo, los métodos MobileScreen.AddConstraint y MobileUIControl.AddConstraint cuentan ahora el parámetro extra opcional “name”, de modo que se pueda asignar un nombre al constraint añadido. De esa forma, es posible activarlo/desactivarlo o eliminarlo posteriormente basándose simplemente en el nombre del constraint.
Por supuesto, no es posible asignar el mismo nombre a varias instancias de iOSLayoutConstraint añadidas a la misma pantalla o control de IU. Si intentas hacerlo obtendrás una excepción UnsupportedOperationException.
Adicionalmente, hemos sobrecargado el método MobileScreen.RemoveConstraint para que tome un parámetro de tipo String, correspondiente al nombre del constraint que se desea eliminar de una pantalla o control determinados; mucho más sencillo en comparación con la opción de mantener referencias a las instancias de iOSLayoutConstraint creadas bajo propiedades o cualquier otra implementación por la que pudieses optar como alternativa.
En definitiva, a partir de ahora ya no tendrás necesidad de implementar tu propia lógica en los proyectos de iOS cuando se trate de mantener mejor referenciadas las instancias de iOSLayoutConstraint creadas en código, y que resultan tan necesarias para que tu app iOS brille en todas la plataformas soportadas (iPhone / iPad), así como sobre todas las orientaciones soportadas.