UIView drawRect EXC_BAD_ACCESS при воссоздании Custon UIView - PullRequest
1 голос
/ 16 декабря 2011

У меня возникли некоторые проблемы с 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;

У кого-то была такая же проблема?

...