Mam UIImage
, który chcę narysować na UIView
. Ale zamiast tworzyć UIImageView
i dodawać to jako widok podrzędny, chcę nadpisać -drawRect:
i narysować bezpośrednio UIView.Jak narysować UIImage lub bezpośrednio w-drawRect :?
Na przykład, mój kod wygląda następująco:
- (void)drawRect:(CGRect)rect {
CGContextRef myContext = UIGraphicsGetCurrentContext();
UIImage *img = [UIImage imageNamed:@"foo.png"];
// how to draw the directly into the view now?
}
Istnieje również '[img drawAtPoint: point]', chociaż ja wolę 'drawInRect:'. –
spróbuj uniknąć tej techniki, jeśli możesz; drawInRect i drawAtPoint mają dość fatalną wydajność. – TomSwift
Dzięki. Zauważyłem, że są one szczególnie przydatne (w połączeniu z podobnymi dodatkami do rysowania NIKtring UIKit) dla widoków zawierających obrazy tła i tekst, a następnie dodawane do widoku przewijania. Rysowanie obrazu tła i tekstu razem w drawRect: pozwala uniknąć mieszania warstw Quartz (tak jak w przypadku zastosowania podejścia UIImageView i UILabel subviews), co ma znaczący wpływ na wydajność przewijania. – cidered