我在使用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;
有人有同样的问题吗?