1
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch=[touches anyObject];
currentPoint=[touch locationInView:self.view];
rootLayer = [CALayer layer];
rootLayer.frame = self.view.bounds;
[self.view.layer addSublayer:rootLayer];
starPath = CGPathCreateMutable();
CGPathMoveToPoint(starPath, NULL, currentPoint.x, currentPoint.y + 15.0);
for(int i = 1; i < 5; ++i)
{
CGFloat x = 15.0 * sinf(i * 4.0 * M_PI/5.0);
CGFloat y = 15.0 * cosf(i * 4.0 * M_PI/5.0);
CGPathAddLineToPoint(starPath, NULL, currentPoint.x + x, currentPoint.y + y);
}
CGPathCloseSubpath(starPath);
shapeLayer = [CAShapeLayer layer];
shapeLayer.path = starPath;
UIColor *fillColor = [UIColor colorWithWhite:0.9 alpha:1.0];
shapeLayer.fillColor = fillColor.CGColor;
[rootLayer addSublayer:shapeLayer];
}
- (void)dealloc {
[imageView release];
CGPathRelease(starPath);
[super dealloc];
}
當我與性能工具運行泄漏它佔用更多的內存問題,在我的代碼的內存管理
當IAM移動....
做什麼....
我需要在圖層上觸摸這部電影來繪製這個星形,所以我可以稍後執行動畫....
感謝您的重播.. 我也是這麼做的......但仍然在我的樂器中,當我移動時,所有分配都會增加....它不受控制...... – 2010-10-07 11:26:37
@Kiran爲什麼您聲明starpath作爲一個全局變量?耶爾的回答是正確的。你只需要在觸摸移動方法本身內部釋放starpath。 – Sagar 2010-10-07 12:46:23