Я бы не рекомендовал рисовать вне границ вида.Либо ваш вид должен изменить размер автоматически, чтобы включить чертеж, либо вам нужны прозрачные перекрывающиеся виды.Или оба.Я не могу вспомнить ситуацию, которую ни один из этих случаев не охватил бы, но мне может не хватить воображения.=)
Вероятно, в настоящее время происходит то, что, когда супер-вид перерисовывается, он сообщает супер-виду, что ему нужно перерисовать, что приводит к стиранию чертежа, который ты делаешь снаружи.Прошло какое-то время, и любой более знающий может (должен!) Исправить меня здесь, если я ошибаюсь.
Я не знаю, если "Quartz Debug" (из стандартной установки инструментов разработчика Apple, /Developer/Applications/Performance Tools/Quartz Debug
)) работает в симуляторе, но попробовать стоит.В нем есть режим, который покажет вам, когда и как часто происходит перерисовка, с рамкой и необязательной задержкой для обновлений.
Вы можете делать то, что просите, но вам нужно принудительно перерисовать ваши подвидыкаждый раз, когда вы выходите за пределы вложенного представления, это означает, что вашему суперпространству нужно вручную рисовать своих детей внутри функции рисования.По сути, вы бы отказались от парадигмы рисования Apple и просто заставили бы свои подчиненные представления действовать как расширение рисования вашего основного вида в любом случае.
Кроме того, если ваши диапазоны настолько динамичны, вы можете рассмотреть рисование в процентахэкрана или суперпредставления, а не точек, может иметь смысл кодировать.