В UIView
в проекте Xamarin.iOS у меня есть событие, которое регулярно запускается и вызывает SetNeedsDisplay()
всякий раз, когда необходимо перерисовать содержимое этого представления:
delegate (object sender, EventArgs e)
{
SetNeedsDisplay();
};
У меня также есть некоторыеCore Graphics вызывает в переопределенном методе Draw()
UIView
, репрезентативном для этого:
public override void Draw(CGRect rect)
{
base.Draw(rect);
using (var context = UIGraphics.GetCurrentContext())
{
// Draw a rectangle of a variable width and height
context.FillRect(new CGRect(0, 0, _width, _height));
}
}
Привод по событию, описанному выше, SetNeedsDisplay()
вызывается 2-3 раза в секунду.С разными значениями _width
и _height
я бы ожидал, что прямоугольник будет быстро нарисован на экране с разными размерами, как часто вызывается SetNeedsDisplay()
.Тем не менее, прямоугольник перерисовывается только один или два раза в минуту .
Как рисовать с Core Graphics на желаемой частоте?