Что вы подразумеваете под "ваши подпредставления нарисованы в drawRect"?Если вы имеете в виду, что вы делаете вызовы -addSubview: в вашем drawRect не делайте этого.Переместите их в более подходящее место, которое вызывается только тогда, когда это необходимо (вероятно, -initWithFrame: метод для вашего представления, если там есть подпредставления всегда ), и используйте drawRect только для выполнения пользовательского рисования.
Строго говоря, многократный вызов - это весь смысл -drawRect.Он призван обновить небольшие части вашего представления, когда это необходимо.На самом деле он вызывается довольно часто, если вы обновляете свое представление (перемещаете его, обновляете суперпредставление и т. Д.), Поэтому оно должно быть максимально простым и быстрым, чтобы избежать проблем с производительностью.