UIView drawRect EXC_BAD_ACCESS创建自定义UIView

时间:2011-12-16 15:08:13

标签: uiview exc-bad-access drawrect recreate

我在使用drawRect时遇到了一些问题,并创建了一个UIView自定义类的新实例。

我的问题是:我如何使用drawrect? 我创建了一个带有UIScrollView的UIViewController,并在这个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。

如果我删除了drawrect代码,一切都开始工作,没有EXC_BAD_ACCESS。所以我得知我的问题是我的方法。

有没有正确的方法来删除我的UIviewController?在dealloc上我删除UIScrollView中的所有UIViews并将其设置为nil,此外我将UIScrollView设置为nil,例如:

for (UIView *item in MyUICscrollView.subviews)
{
  [item removeFromSuperview];
  item = nil;
}
MyUICscrollView = nil;

有人有同样的问题吗?

0 个答案:

没有答案