drawRectに問題があり、UIViewカスタムクラスの新しいインスタンスを作成します。
私の質問は:drawrectをどのように使用できますか?UIScrollViewを使用してUIViewControllerを作成し、このUIScrollView内に約50のUIViewを作成しました。各UIViewは、それぞれがdrawrectを使用して3つの要素(カスタムUIView)内に作成します。
- (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なしですべてが再び機能し始めます。だから私は私の問題は私のdrawrectメソッドであると結論付けました。
UIviewControllerを真に削除する正しい方法はありますか?Deallocでは、UIScrollView内のすべてのUIViewを削除し、nilに設定しています。さらに、UIScrollViewもnilに設定しています。たとえば、次のようになります。
for (UIView *item in MyUICscrollView.subviews)
{
[item removeFromSuperview];
item = nil;
}
MyUICscrollView = nil;
誰かが同じ問題を抱えていましたか?