È possibile distribuire equamente lo spazio sinistro e destro per b
in @"|-[a(5)]-[b(8)]-[c(5)]-|"
utilizzando le stringhe di formato visivo?Distribuire equamente la spaziatura utilizzando la stringa di formattazione visiva Layout automatico
Distribuire equamente la spaziatura utilizzando la stringa di formattazione visiva Layout automatico
risposta
No.
Tuttavia, è possibile farlo con formato visivo e una creazione vincolo manuale. Modificare la stringa VFL a:
@"|-[a(5)]->=0-[b(8)]->=0-[c(5)]-|"
Questo dice che non siete troppo preoccupati per la dimensione effettiva degli spazi tra A e B, e B e C.
Ora, creare un vincolo che fissa il centro di b al centro della superview utilizzando constraintWithItem:...
(sto digitando questo messaggio su un telefono, quindi perdonatemi per non aver spiegato l'intero metodo).
Questo, insieme alla spaziatura flessibile, darà anche spazi a sinistra ea destra di b.
Suona grande. Darò un colpo. Grazie! – flohei
Funziona alla grande. Cosi 'semplice. Grazie! :-) – flohei
In che modo "hai fissato il centro di b al centro della superview", @flohei? E non è nemmeno possibile usare il formato visivo per quello o bisogna usare 'constraintWithItem: attribute: relatedBy: toItem: attributo: moltiplicatore: costante:'? –
L'Apple Auto Layout Guide suggerisce di utilizzare "viste spaziatore". Ecco la soluzione per il layout del tre viste con spaziatura uguale orizzontalmente:
// create views dictionary
NSMutableDictionary *viewsDictionary = [NSMutableDictionary dictionary];
[viewsDictionary addEntriesFromDictionary:NSDictionaryOfVariableBindings(viewA, viewB, viewC)];
// create 4 spacer views
for (int i = 0; i < 4; i++) {
UIView *spacerView = [[UIView alloc] init];
spacerView.hidden = YES;
[self addSubview:spacerView];
[viewsDictionary setObject:spacerView
forKey:[NSString stringWithFormat:@"spacer%d", i + 1]];
}
// disable translatesAutoresizingMaskIntoConstraints in views for auto layout
[viewsDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
[obj setTranslatesAutoresizingMaskIntoConstraints:NO];
}];
// add constraints
[superview addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:
@"|[spacer1(>=0)][viewA][spacer2(==spacer1)][viewB][spacer3(==spacer1)][viewC][spacer4(==spacer1)]|"
options:kNilOptions
metrics:nil
views:viewsDictionary]];
noti che la larghezza spacer1
s' è impostato per essere più di 0. viste distanziatori successivi sono impostati per avere larghezze uguali con spacer1
.
C'è qualche ragione per cui non hai semplicemente scritto 'NSDictionary * views = NSDictionaryOfVariableBindings (viewA, viewB, viewC);'? –
Ho modificato la mia risposta per utilizzare più argomenti in NSDictionaryOfVariableBindings. Sto usando un dizionario mutabile in modo da poter aggiungere le mie viste spaziali dinamicamente. –
Oh, giusto.^___^'NSMutableDictionary * views = NSDictionaryOfVariableBindings (viewA, viewB, viewC) .mutableCopy;' then. –
- 1. Come ridimensionare una vista utilizzando il layout automatico di Xcode
- 2. Come impostare la spaziatura standard tra UIViews in codice con layout automatico?
- 3. Spaziatura dei pulsanti equamente su una finestra in WPF
- 4. Come migliorare la spaziatura nel layout 'cose' in cytoscape.js?
- 5. UITextView in UIScrollView utilizzando il layout automatico
- 6. Formattazione della data utilizzando la libreria di tempo Joda
- 7. Layout automatico = ViewWillAppear ha la larghezza errata della vista
- 8. formattazione con una stringa utilizzando php
- 9. Errore di layout automatico
- 10. UIScrollView setContentSize interrompe la visualizzazione con Layout automatico
- 11. layout automatico e AVCaptureVideoPreviewLayer
- 12. Python: La formattazione di una stringa utilizzando nomi di variabili segnaposto
- 13. Workout il formato di stringa utilizzato per la formattazione DateTime
- 14. espressioni regolari per la formattazione condizionale di una stringa numerica
- 15. specificato visiva è già un figlio di un altro visiva o la radice di un CompositionTarget
- 16. Ordinamento automatico la tabella utilizzando sorttable.js
- 17. Layout automatico non funziona?
- 18. Come impostare la spaziatura tra i pulsanti utilizzando il bootstrap
- 19. Come aumentare la spaziatura nodo per networkx.spring_layout
- 20. Vista visiva vs Vista di layout sui dispositivi mobili
- 21. Formattazione di frasi in una stringa utilizzando C#
- 22. NSSplitVIew - la posizione di salvataggio automatico del divisore non funziona con il layout automatico abilitato
- 23. Come rendere una vista piazza ridimensionare con la sua superview utilizzando layout automatico
- 24. WPF: La formattazione di un'etichetta
- 25. Impossibile dividere la stringa utilizzando |
- 26. UICollectionViewCell Layout automatico
- 27. Layout automatico usando initWithFrame?
- 28. Maven Deploy: distribuire utilizzando -DaltDeploymentRepository
- 29. Come si stampa un segno '%' usando la formattazione della stringa?
- 30. Perché la formattazione della stringa non funziona in Clojure?
MOLTO BUON articolo relativo a questa domanda [qui] (http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view/25898949#25898949) –