Objective C: rimuovere da codice i vincoli impostati tramite Storyboard

Objective C: rimuovere da codice i vincoli impostati tramite Storyboard

Da quando XCode le prevede, le UIStoryboard sono diventate una componente quasi imprescindibile per lo sviluppo di qualsiasi app grazie alla semplicità con cui consentono di realizzare l'interfaccia grafica e il posizionamento accurato degli oggetti. Può però capitare di avere la necessità di dover rimuovere da codice i vincoli impostati tramite la Storyboard, ad esempio per cambiare la posizione di un oggetto in conseguenza di un evento attivato dall'interazione dell'utente.

Per far questo ho messo a punto il seguente metodo statico:

Potete inserirlo in una qualsiasi classe helper già presente nel vostro progetto oppure crearne una apposita (la mia si chiama LayoutHelper) e richiamarlo nel seguente modo:

Come potete vedere il metodo può essere configurato per eliminare i vincoli presenti tra la nostra view e quella che la contiene e/o quelle che sono in essa contenute. Inutile dire che tanto l'oggetto self.myView quanto i suoi parent / children possono appartenere a una qualsiasi classe derivata da UIView (UIButton, UIImage, UILabel, etc.).

Ricordate che, una volta rimossi i vincoli definiti a livello di Storyboard, potete impostarne di nuovi direttamente da codice utilizzando il metodo descritto in quest'altro articolo.

Felice sviluppo!

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

One Comment on “Objective C: rimuovere da codice i vincoli impostati tramite Storyboard”

  1. Pingback: Objective C: allineare un qualsiasi oggetto UIView all'interno della sua parent view da codice - Ryadel

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


The reCAPTCHA verification period has expired. Please reload the page.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.