2013-12-07 8 views
6

Voglio solo attivare la funzionalità di layout automatico per una sola visualizzazione nella mia trama. è possibile e se sì, come faccio? Sto usando Xcode 4.6.3come disattivare il layout automatico per una sola vista (non l'intero story board) xcode

+1

No, non puoi farlo. È uno storyboard o un'ambientazione xib. Se ne hai bisogno per una vista, crea quella vista in un xib separato. – rdelmar

+0

nel mio programma non posso usare i file xib. Quindi non c'è altra soluzione? – user2988343

+1

No, non è possibile disabilitare per un singolo VC. Usa xib, o fai completamente l'autolayout. – CaptJak

risposta

1

Tecnicamente , tutti hanno ragione a non essere in grado di disattivare il layout automatico per le singole scene nello storyboard. Tuttavia, anche se lo "switch" globale per il layout automatico è attivato nello storyboard, è comunque possibile utilizzare le maschere di autoresizing (ad esempio, il sistema di molle e ammortizzatori) in qualsiasi punto desiderato. Sebbene il sistema converta le maschere in vincoli di ridimensionamento automatico dietro le quinte, non dovrai affrontare direttamente i vincoli.

Accertati solo che quando si assegna/avvia una vista a livello di codice, si imposta la sua proprietà translateAutoresizingMaskIntoConstraints su YES.

4

Dalla risposta data da MuhammadAamirAli here, è possibile. Ecco un codice di istantanea dalla sua risposta, che ho trovato utile.

[self.benchmarkButton removeFromSuperview]; 
[self.benchmarkButton setTranslatesAutoresizingMaskIntoConstraints:YES]; 
[self.benchmarkButton setFrame:CGRectMake(20, self.benchmarkButton.frame.origin.y+40, 260, 30)]; 
[self.benchmarksView addSubview:self.benchmarkButton]; 
Problemi correlati