Czy można równo rozmieścić lewą i prawą przestrzeń dla b
w @"|-[a(5)]-[b(8)]-[c(5)]-|"
używając ciągów w formacie wizualnym?Równomierne rozmieszczanie odstępów przy użyciu formatu graficznego Auto Layout
Odpowiedz
nr
Jednak można to zrobić w formacie wizualnym i ręcznym tworzeniu więzów. Zmień swój ciąg VFL do:
@"|-[a(5)]->=0-[b(8)]->=0-[c(5)]-|"
Ten mówi, że nie jesteś zbyt zaniepokojeni rzeczywistej wielkości przestrzeni między A i B, a B i C.
Teraz utworzymy ograniczenie przypinające środek b do środka superwizji za pomocą constraintWithItem:...
(Piszę to na telefonie, więc wybacz mi, że nie wymawiam całej metody).
To, w połączeniu z elastycznymi odstępami, zapewni równe odstępy po lewej i prawej stronie b.
To brzmi wspaniały. Dam mu szansę. Dzięki! – flohei
Działa po prostu świetnie. Tak prosty. Dzięki! :-) – flohei
Jak dokładnie "przypnij środek b do centrum superview", @flohei? I nie jest możliwe, aby użyć formatu wizualnego do tego, lub należy użyć 'constraintWithItem: atrybut: relatedBy: toItem: atrybut: mnożnik: stała:'? –
Firma Apple podaje numer Auto Layout Guide za pomocą "widoków z przekładek". Oto rozwiązanie dla kur swoje trzy widoki z równych odstępach poziomo:
// 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]];
Należy zauważyć, że szerokość spacer1
„s jest ustawiony na więcej niż 0. Kolejne odsłony dystansowe są ustawione na równych szerokościach z spacer1
.
Czy istnieje powód, dla którego nie napisałeś po prostu 'NSDictionary * views = NSDictionaryOfVariableBindings (viewA, viewB, viewC);'? –
Edytowałem swoją odpowiedź, aby użyć wielu argumentów w NSDictionaryOfVariableBindings. Używam zmiennego słownika, aby móc dynamicznie dodawać do niego widoki spacerów. –
Och, racja.^___^'NSMutableDictionary * views = NSDictionaryOfVariableBindings (viewA, viewB, viewC) .mutableCopy;' then. –
- 1. Auto Layout UILabels
- 2. Auto Layout nie działa?
- 3. Jak dopasować UICollectionViewCell do jego podobrazów (przy użyciu Auto Layout)?
- 4. Auto Layout i sizeForChildContentContainer
- 5. UICollectionViewCell Auto Layout
- 6. Auto Layout: layoutMarginsGuide
- 7. UIView z Auto layout, uzyskać jego rozmiar
- 8. Auto Layout: animowanie zmiany NSLayoutConstraint za mnożnik
- 9. Niestandardowy UICollectionViewCell Auto Layout NSInternalInconsistency Błąd wyjątku
- 10. Graph Layout użyciu Graph #
- 11. Rozmieszczanie aplikacji Pyramid przy użyciu uWSGI i Cherokee
- 12. iOS 7 Auto Layout a iOS 8 Adaptive Layout, czy jest jakaś różnica?
- 13. Korzystanie Auto Layout zmienić obowiązuje w równym stopniu od rozmiaru
- 14. Ustaw wysokość UITableView na wysokość zawartości z Auto Layout
- 15. Auto Layout: nie można uzyskać rozmiaru ramki UICollectionViewCell subViews
- 16. UIScrollView z iOS Auto Layout Ograniczenia: Niewłaściwy rozmiar dla subviews
- 17. Jak ustawić różne wiązania Auto Layout dla różnych rozmiarów ekranów
- 18. Zdanie Regex.Split() do słów przy zachowaniu odstępów.
- 19. Dodawanie właściwości Auto-Implemented do klasy przy użyciu Roslyn
- 20. Auto inkrementacja o 1 w MySQL przy użyciu clearDB
- 21. Auto-odtwarzanie wideo HTML5 w Dom Load przy użyciu jQuery
- 22. Określanie formatu: "xml" zignorowany przy pomocy render_to_string
- 23. Konwersja programu Excel do formatu JSON przy użyciu Angularjs
- 24. Jak wypisać ciąg Unicode do formatu RTF (przy użyciu C#)
- 25. Ustawianie formatu daty dla tekstu wejściowego przy użyciu Spring MVC
- 26. Brak domyślnego formatu dla MyClass dostępnego przy użyciu Json.format
- 27. Stosowanie% formatu liczb do wartości komórek przy użyciu OpenXML
- 28. Konwersja strony do formatu PDF przy użyciu dompdf
- 29. Rozmieszczanie projektu Spring MVC
- 30. Jak mogę sformatować Czas w [h]: mm excel formatu przy użyciu formatu function() w VBA
BARDZO DOBRA TAKI artykuł odnoszący się do tego pytania [tutaj] (http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view/25898949#25898949) –