Chciałbym dynamicznie stworzyć 1x1 UIImage w oparciu o UIColor.
Podejrzewam, że można to szybko zrobić za pomocą Quartz2d i wsuwam się w dokumentację, próbując zrozumieć podstawy. Wygląda jednak na to, że istnieje wiele potencjalnych pułapek: niepoprawna identyfikacja liczby bitów i bajtów na rzecz, niewłaściwe określenie odpowiednich flag, nieudostępnianie nieużywanych danych itp.
Jak można to bezpiecznie zrobić za pomocą Quartz 2d (lub w inny prostszy sposób)?
ios
uiimage
core-graphics
quartz-graphics
Ian Terrell
źródło
źródło
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
wracanil
? Edycja : mam to, przechodziłem0
przezrect
swidth
.Oto inna opcja oparta na kodzie Matta Stephena. Tworzy skalowalny obraz w jednolitym kolorze, tak że możesz go użyć ponownie lub zmienić jego rozmiar (np. Użyj go jako tła).
Umieść go w kategorii UIImage i zmień prefiks.
źródło
Wiele razy korzystałem z odpowiedzi Matta Stevena, więc stworzyłem dla niej kategorię:
źródło
Korzystając z najnowszego UIGraphicsImageRenderer firmy Apple, kod jest dość mały:
źródło
Dla mnie wygoda, którą init wydaje się schludniejszy w Swift.
źródło
Ok, to nie będzie dokładnie to, czego chcesz, ale ten kod narysuje linię. Możesz to dostosować, aby uzyskać jakiś punkt. Albo przynajmniej zdobądź z niego trochę informacji.
Tworzenie obrazu 1x1 wydaje się trochę dziwne. Pociągnięcia przesuwają się po linii, więc pociągnięcie o szerokości 1,0 i 0,5 powinno działać. Po prostu pobaw się.
źródło