Chciałbym sortować NSMutableArray UIViews zgodnie z ich frame.origin.y, chcę najniższy widok z y, aby być pierwszym itp. Może być Przypadek, w którym 2 UIViews mają to samo pochodzenie. Czy istnieje istniejąca metoda na to?Sortuj NSMutableArray UIView zgodnie z ich frame.origin.y
Odpowiedz
NSMutableArray
posiada kilka metod sortowania. Wybierz jedną z nich, zaimplementuj selektor sortowania, zablokuj lub użyj funkcji i porównaj wartości y
. Oto przykład przy użyciu bloków:
NSComparator comparatorBlock = ^(UIView *obj1, UIView *obj2) {
if (obj1.frame.origin.y > obj2.frame.origin.y) {
return (NSComparisonResult)NSOrderedDescending;
}
if (obj1.frame.origin.y < obj2.frame.origin.y) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
};
[array sortUsingComparator:comparatorBlock];
można uzyskać tablicę subviews użyciu
yourView.subviews
następnie można wykonać iterację każdego i sprawdzić każdy frame.origin.y i robić swoje kodowanie
Chociaż nie jest frame.origin.y, można to zrobić także za pomocą SortDescriptor i patrząc na layer.position.y jako klucz.
[array sortedArrayUsingDescriptors:@[[[NSSortDescriptor alloc] initWithKey:@"layer.position.y" ascending:YES]]];
O wiele lepsze rozwiązanie niż odpowiedź .. możesz sortować na 'klatce', ponieważ jest to struktura – RyanG
to w jaki sposób to zrobić w Swift:
listOfViews.sortInPlace { CGRectGetMinY($0.frame) < CGRectGetMinY($1.frame) }
To wszystko :-) Cała moja miłość do Swift :-)
- 1. Sortuj NSMutableArray z obiektami niestandardowymi za pomocą innego NSMutableArray
- 2. Sortuj tablicę obiektów przez ich NSDate własności
- 3. Porównywanie zdań zgodnie z ich znaczeniem
- 4. Połącz jedną NSMutableArray z końcem innej NSMutableArray
- 5. Sortuj kontakt alfabetycznie z sekcji UITableView
- 6. wybieranie elementów z listy zgodnie z ich etykietami z drugiej listy
- 7. Sekcje grupowania UITableView z NSMutableArray
- 8. Sortuj NSArray z sortedArrayUsingComparator
- 9. Multiple UIView jest z UIBezierPath
- 10. Resetowanie NSMutableArray
- 11. Jak wymusić layoutSubviews z UIView.
- 12. Sortuj listę String z liczbowych
- 13. Obraz z UIView
- 14. Rendering UIView z dziećmi
- 15. Utwórz UIView z NIB
- 16. UIImage z regionu UIView
- 17. Jak dodać NSMutableArray do obiektu NSMutableArray Objective-c
- 18. Jak sortować elementy div zgodnie z ich identyfikatorem za pomocą jQuery?
- 19. cel c, NSMutableArray: indexOfObject
- 20. NSMutableSet vs NSMutableArray
- 21. Pobranie ostatnich obiektów x z obiektu NSMutableArray
- 22. Problemy z inicjowaniem NSMutableArray w moim Singleton
- 23. Jak usunąć wszystkie obiekty z obiektu NSMutableArray?
- 24. Jak uzyskać pierwszą wartość z NSMutableArray (iPhone)?
- 25. Kopiowanie NSMutableArray do innego
- 26. NSMutableArray addObject, nierozpoznany selektor
- 27. Zamiana elementów w NSMutableArray
- 28. dostać obiektów w NSMutableArray
- 29. Przechowywanie CLLocationCoordinates2D w NSMutableArray
- 30. Równoważnik NSMutableArray w C++?
działa jak urok! dzięki człowiekowi :) nie wiedziałem o tym i jest tak dobrze! – xGoPox
Dziękujemy! To naprawdę świetna pomoc. –
Tak pomocne! Bardzo dziękuję –