не может потянуть достаточно быстро, чтобы не отставать от touchesMoved?

вы можете использовать коррелированный подзапрос

select t1.* from table_name t1
where date=( select max(date) from table_name t2 where t2.id=t1.id)
6
задан Henning 5 March 2009 в 16:19
поделиться

2 ответа

Это звучит мне как, Вы не даете основному циклу выполнения шанс обновить дисплей. Ваш код для прорисовки может занимать больше времени для выполнения, чем время между сенсорными событиями, таким образом, дисплей никогда не обновляется. Когда Вы шевелите пальцем, он делает обновление, потому что он больше не обременяется Вашим рисунком.

Вы могли бы полагать, что оптимизация Вашего рисунка ускорила его (рисование только в грязном регионе экрана, например), использование чего-то как NSOperationQueue для стояния в очереди тяжелых вычислений рисунка для работы фонового потока или выборочно отбрасывания сенсорного рисования событий для хранения ответа гладким.

Одна дополнительная возможность помещает Ваш тяжелый код для прорисовки в отдельный метод и называет его через performSelector:withObject:afterDelay с 10 миллисекундами (или меньшим) задержка. Это могло бы дать основному циклу выполнения шанс обновить дисплей с его текущим состоянием. Я не протестировал это, но если я помню правильно, что я видел эту работу.

2
ответ дан 17 December 2019 в 20:35
поделиться

Вы не можете непосредственно звонить drawRect:. Для обновления экрана по требованию попытайтесь звонить [self setNeedsDisplay] от Вашего touchesMoved метод, который установит надлежащие контексты для вызова к drawRect:.

0
ответ дан 17 December 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: