Jak działa obsługa wektorów w Xcode 6?
Kiedy próbuję zmienić rozmiar obrazu, wygląda na poszarpany, co daje?
źródło
Jak działa obsługa wektorów w Xcode 6?
Kiedy próbuję zmienić rozmiar obrazu, wygląda na poszarpany, co daje?
Możesz teraz odwoływać się do swojego obrazu, używając jego nazwy, tak jak do każdego pliku .png .
UIImage(named: "myImage")
Obsługa wektorów jest myląca w Xcode, ponieważ kiedy większość ludzi myśli o wektorach, myślą o obrazach, które można skalować w górę iw dół i nadal dobrze wyglądać. Jednak Xcode 6 i 7 nie mają pełnej obsługi wektorów dla iOS, więc rzeczy działają trochę inaczej.
System wektorowy jest naprawdę prosty . Zajmuje swój .pdf
wizerunek i tworzy @1x.png
, @2x.png
i @3x.png
aktywa w czasie kompilacji . (Możesz użyć narzędzia do sprawdzenia zawartości Assets.car, aby to sprawdzić).
Na przykład załóżmy, że otrzymałeś foo.pdf
zasób wektorowy 44x44. W czasie kompilacji wygeneruje następujące pliki:
[email protected]
przy 44x44[email protected]
przy 88x88[email protected]
przy 132x132Działa to tak samo dla każdego rozmiaru obrazu. Na przykład, jeśli masz bar.pdf
100x100, otrzymasz:
[email protected]
przy 100x100[email protected]
przy 200x200[email protected]
przy 300x300
resizableImageWithCapInsets:
i dzieląc wartości[UIScreen mainScreen].scale
CGFloat scale = [UIScreen mainScreen].scale; UIImage *image = [[UIImage imageNamed:@"my_unsliced_asset"] resizableImageWithCapInsets:UIEdgeInsetsMake(10 * scale, 11 * scale, 12 * scale, 13 * scale)];
W Xcode 8 nadal możesz dodać plik PDF, utworzyć nowy zestaw obrazów, aw Inspektorze atrybutów ustawić opcję Skale na pojedynczą skalę.
źródło
To uzupełnienie doskonałej odpowiedzi @Senseful.
Jak tworzyć obrazy wektorowe w formacie .pdf
Powiem, jak to zrobić w Inkscape, ponieważ jest darmowy i open source, ale inne programy powinny być podobne.
W Inkscape:
Uwagi:
Jeśli masz już obraz .svg o nieprawidłowym rozmiarze strony, wykonaj następujące czynności:
Aby przekonwertować plik .svg na .pdf, możesz również znaleźć narzędzia online, które wykonają to zadanie za Ciebie. Oto jeden przykład z tej odpowiedzi . Ma to tę zaletę, że umożliwia łatwe ustawienie rozmiaru .pdf.
Dalsza lektura
źródło
Dla tych, którzy wciąż nie aktualizowali, nastąpiły zmiany w Xcode 9 (iOS 11).
Co nowego w Cocoa Touch (sesja 201 WWDC 2017) (@ 32:55) https://developer.apple.com/videos/play/wwdc2017/201/
Krótko mówiąc, Katalog zasobów zawiera teraz nowe pole wyboru w Inspektorze atrybutów o nazwie „Zachowaj dane wektorowe”. Gdy zaznaczone, dane PDF zostaną uwzględnione w skompilowanym pliku binarnym, oczywiście zwiększając jego rozmiar. Ale daje to szansę iOS na skalowanie danych wektorowych w obu kierunkach i dostarczanie ładnych obrazów (z własnymi trudnościami). W przypadku iOS poniżej 11 używane są stare mechanizmy skalowania opisane w odpowiedziach w górę.
źródło
Możesz używać zwykłych plików PDF w swoim projekcie jako obrazów wektorowych i renderować obrazy o dowolnym rozmiarze za pomocą tego rozszerzenia. Jest to o wiele lepsze, ponieważ iOS nie generuje obrazów .PNG z plików PDF, a ponadto możesz renderować obrazy o dowolnym rozmiarze:
źródło