Отрисовка iOS по команде Quartz 2D CGContext

Привет, я сделал настраиваемое представление, которое представляет собой график с осями и т. Д., Поэтому я рисую много линий, используя Quartz 2D в методе представления drawRect :.

Однако я хотел бы изменить это сейчас, чтобы я мог использовать контроллер моего представления для отдельного рисования определенных частей графика. Например, нарисуйте ось x, подождите 10 секунд, затем нарисуйте ось y. Итак, я разделил команды рисования и поместил их в отдельные методы, чтобы их можно было вызывать из контроллера, но теперь, поскольку я рисую за пределами drawRect: я не могу получить графический контекст.

Как мне это реализовать? Правильно ли использовать кварц 2d?


person John Webb    schedule 15.10.2012    source источник


Ответы (2)


Вы можете разделить drawRect: функциональность на несколько UIView's, и дать контроллеру представления возможность управлять тем, какие представления будут отрисовываться в данный момент.

person wattson12    schedule 15.10.2012
comment
Спасибо, я надеялся сохранить их всех в единственном экземпляре, и я тоже смог бы сделать эту работу. - person John Webb; 15.10.2012

Почему бы вам не создать UIImage из каждой операции рисования и не нарисовать UIImage в UIImageView?

UIGraphicsBeginImageContext(self.view.frame.size);
//draw code here (draw previous UIIMage first before new drawing)
[drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

//now draw here

//get the UIImage
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//set the UIImage to your UIImageView
person Lefteris    schedule 15.10.2012