Как вызвать drawRect программно в цели c - PullRequest
22 голосов
/ 04 мая 2010

Как программно вызвать drawRect в объективе c?

Я хочу вызвать метод drawrect для представления в моем UItabbarcontroller. Как я могу это сделать? Заранее спасибо ..

Редактировать

Мне нужно позвонить, когда вид в настоящее время не виден. Это будет первый раз, когда я должен назвать это представление

Ответы [ 5 ]

43 голосов
/ 04 мая 2010
[myView.layer display];

Заставляет представление рисовать себя сразу.

[myView setNeedsDisplay: YES];

Принудительно перерисовывает представление в следующем цикле цикла событий.

Однако, если вам нужно вызвать его, даже когда он не виден, я думаю, что-то не так с дизайном вашего класса представления. Вы должны только рисовать внутри drawRect: ничего больше. И если вы только рисуете, зачем делать это, когда вид не виден?

4 голосов
/ 04 мая 2010
3 голосов
/ 04 мая 2010
1 голос
/ 16 августа 2017

Swift:

yourView.setNeedsDisplay()

или

yourView.setNeedsDisplay(newRect)
0 голосов
/ 20 октября 2014

view.layer.renderInContext(context: CGContext) может нарисовать содержимое вашего представления в CGContext, например, растровое изображение.

view.snapshotViewAfterScreenUpdates(afterUpdates: Bool) дает вам снимок вида.

...