У меня возникли некоторые проблемы с drawRect и я создал новый экземпляр пользовательского класса UIView.
Мой вопрос: как я могу использовать drawrect?Я создал UIViewController с UIScrollView и внутри этого UIScrollView около 50 UIViews.Каждый UIView создает внутри 3 элемента (Custom UIViews), каждый из которых имеет drawrect:
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextClearRect(c, self.bounds);
CGContextSetStrokeColorWithColor(c, color.CGColor);
CGContextSetLineCap(c, kCGLineCapRound);
CGContextSetInterpolationQuality(c, kCGInterpolationHigh);
CGContextSetLineWidth(c, thickness);
CGContextAddArc(c, self.frame.size.width/2, self.frame.size.height/2, radius, angleIni*M_PI/180, angleEnd*M_PI/180, 0);
CGContextStrokePath(c);
}
Сначала он работает как шарм, но когда я пытаюсь удалить этот UIViewController и создать его снова, я получаюEXC_BAD_ACCESS.
Если я удаляю рисованный код, все снова начинает работать без EXC_BAD_ACCESS.Итак, я пришел к выводу, что моя проблема - это мой метод drawrect.
Есть ли какой-то правильный путь для истинного удаления моего UIviewController?На dealloc я удаляю все свои UIViews из UIScrollView и устанавливаю его в nil, кроме того, я также устанавливаю UIScrollView в nil, например:
for (UIView *item in MyUICscrollView.subviews)
{
[item removeFromSuperview];
item = nil;
}
MyUICscrollView = nil;
У кого-то была такая же проблема?