Зачем тебе что то чистить? Каждый кадр майновский фреймбуффер и так счищает все, что отрисовал, поэтому тебе приходится каждый рендертик вызывать код отрисовки. drawRect - это такая же отрисовка полигонов на экране, как если бы ты рисовал 3д модель блока в мире, поэтому к ней можно применить трансформации, по типу glTranslatef/d. Ну и в качестве параметра передать переменную, которая будет плавно увеличиваться или уменьшаться, в зависимости от каких-либо условий (тебе анимацию нужно, судя по тегам)