Size: a a a

iOS Developers — русскоговорящее сообщество

2020 June 06

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Таким макаром, ты берёшь картинку, рисуешь её (поворот), а потом либо рисуешь в другом контексте, либо в UIimageView
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
спасибо Дим
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
смотри, в drawRect если ты возьмёшь current context, то это будет контекст, созданный UIKit'ом, в который рисуется содержимое твоей вьюхи. Когда ты вот рисуешь картинку сам, то это твой отдельный контекст. Это две разные области в памяти, поэтому ты не видишь результат отрисовки картинки на своей вьюхе - надо принудительно отрисовать повёрнутую UIImage в контексте вьюхи
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Опять же, если речь о повороте на 90, 180, 270 градусов, то ты можешь просто поменять ориентацию UIImage и таким макаром не перерисовывать картинку - это дешевле и быстрее
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
а метод drawInRect: в UIImage тогда что рисует?
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
На будущее, чтобы не зависеть от чатика - https://developer.apple.com/documentation/uikit/uiimage/1624092-drawinrect?language=objc
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Там в доке указано "This method draws the entire image in the current graphics context". То есть, рисует в тот контекст, который текущий
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Вот ещё описание того, что такое текущий контекст и откуда он берётся https://developer.apple.com/documentation/uikit/1623918-uigraphicsgetcurrentcontext
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
в текущий контекст, но при этом он вызывается у объекта UIImage
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Это ты про поворот картинки или о чём?
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
т.е. UIImage *image = ….

[image drawInRect:rect];
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Под капотом там происходит вызов UIGraphicsGetCurrentContext
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
И тот, который текущий - в него и рисуется. Чуток я запутался, что именно тебе не понятно
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
мне не понятно как раз почему drawInRect: не хочет текущий контекст нарисовать
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
если оно внутри реалдонли, окей
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
ща… погоди, поковыряю немного сам
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
Sergey Vanichkin
мне не понятно как раз почему drawInRect: не хочет текущий контекст нарисовать
Боюсь, что ты не понял, что такое контекст.
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
вполне возможно
источник

DV

Dima Vorona in iOS Developers — русскоговорящее сообщество
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
я не с UIView работаю
источник