2012-06-12 5 views
3

Я пытаюсь создать пользовательский ProgressBar с MonoTouch. Я создал класс, который перерисовывает строку с помощью таймера. Моя проблема в том, что когда SetNeedsDisplay называется видом, он не перерисовывает себя. Только при наличии касания SetNeedsDisplay вызывает метод OnDraw. Что мне нужно сделать, чтобы метод OnDraw вызывался без прикосновения?SetNeedsDisplay with monotouch

+0

Вы звоните в SetNeedsDisplay в правильной теме? Если вы вызовете его в потоке таймера, он не будет нарисован (посмотрите на не принятый ответ [здесь] (http://stackoverflow.com/questions/1503761/what-is-the-most-robust-way- to-force-a-uiview-to-redraw)) – basti

+2

вы только что спасли меня от моего друга. Просто введите в качестве ответа, что я должен вызвать основной поток (InvokeOnMainThread), чтобы я мог вознаградить вас. – alecnash

+0

Просто написал короткий ответ :) – basti

ответ

3

Вам нужно обязательно позвонить SetNeedsDisplay в ui-thread, иначе он не будет перерисовывать вид. Source

Смежные вопросы