У меня есть свой пользовательский UIView, внутри которого у меня есть двумерный массив. Этот массив содержит пиксели, которые я рисую в своем пользовательском UIView с помощью метода drawRect.
Теперь я хочу изменить эти пиксели (мой 2-мерный массив) с 100 шагами (или только с массивом результатов). Как сделать этот эффект анимированным? Нет проблем с отображением предыдущего состояния, а затем фактического состояния, но мне нужна анимация между этими состояниями.
Спасибо за любую помощь.
С уважением,
Войтек
[ОБНОВЛЕНИЕ, тот же день, 14:15]
А пока я сделал это следующим образом:
- (void)calculate:(NSTimer *)timer {
int result = [myView calc];
if(result > 0)
{
[NSTimer scheduledTimerWithTimeInterval:0.00001f
target:self selector:@selector(calculate:)
userInfo:nil
repeats:NO];
}
[myView setNeedsDisplay];}
но это не так хорошо, потому что обновление делает его очень медленным. Если я обновляю каждые 2-4 вычисления, моя анимация не плавная.
МОЙ метод рисования:
- (void)drawRect:(CGRect)rect{
int i = 0, j = 0;
CGContextRef myContext = UIGraphicsGetCurrentContext();
// ****************** drawing ********************
for(i = 0; i < 768; i++)
{
for(j = 0; j < 768; j++)
{
if(board[i][j] == 1)
{
CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);
CGContextFillRect (myContext, CGRectMake (i, j, 1, 1));
}
else
{
CGContextSetRGBFillColor (myContext, 0, 0, 1, 1);
CGContextFillRect (myContext, CGRectMake (i, j, 1, 1));
}
}
}
}