Хорошо, вот мой ответ: я в основном сделал нечто похожее на то, как UITableView работает с ячейками: у меня есть NSMutableSet объектов GraphView, которые хранят неиспользуемые графики. Когда часть вида прокрутки становится видимой, я беру график из этого набора (или создаю новый, если набор пустой). У него уже было свойство scrollX, чтобы определить, какая часть должна была быть нарисована. Я установил для свойства scrollX правильное значение и вместо использования ширины экрана выделил произвольную ширину для рисования. Когда он выходит из режима прокрутки, он удаляется из UIScrollView и добавляется в набор.
Интересно, а нужно ли мне вообще их удалять, когда они выходят из поля зрения? Может быть разумно попытаться оставить их и удалить те, которые не на экране, только если я получаю предупреждение о нехватке памяти? Это может избавить от паузы, когда потребуется перерисовать часть графика, которая не изменилась.
Моя спасительная грация заключалась в том, что мой GraphView уже был настроен для рисования только части графика. Все, что мне нужно было сделать, это просто сделать больше, чем один из них.