Chcę narysować przezroczysty obszar za pomocą pędzla, ale mój kod działa niezbyt dobrze. Myślę, że ktoś może mi w tym pomóc. Mój kod:Jak mogę wypełnić przezroczysty obszar obrazu, gdy mój palec przesunął się na
// Handles the start of a touch
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGRect bounds = [self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
if (![image isPointTransparent:[touch locationInView:self]]
|| ![image isPointTransparent:[touch previousLocationInView:self]])
{
return;
}
firstTouch = YES;
// Convert touch point from UIView referential to OpenGL one (upside-down flip)
location = [touch locationInView:self];
location.y = bounds.size.height - location.y;
}
// Handles the continuation of a touch.
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGRect bounds = [self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
if (![image isPointTransparent:[touch locationInView:self]]
|| ![image isPointTransparent:[touch previousLocationInView:self]])
{
return;
}
// Convert touch point from UIView referential to OpenGL one (upside-down flip)
if (firstTouch)
{
firstTouch = NO;
previousLocation = [touch previousLocationInView:self];
previousLocation.y = bounds.size.height - previousLocation.y;
}
else
{
location = [touch locationInView:self];
location.y = bounds.size.height - location.y;
previousLocation = [touch previousLocationInView:self];
previousLocation.y = bounds.size.height - previousLocation.y;
}
// Render the stroke
[self renderLineFromPoint:previousLocation toPoint:location];
}
// Handles the end of a touch event when the touch is a tap.
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGRect bounds = [self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
if (![image isPointTransparent:[touch locationInView:self]] || ![image isPointTransparent:[touch previousLocationInView:self]])
{
return;
}
if (firstTouch)
{
firstTouch = NO;
previousLocation = [touch previousLocationInView:self];
previousLocation.y = bounds.size.height - previousLocation.y;
[self renderLineFromPoint:previousLocation toPoint:location];
}
}
Jaki jest dokładnie Twój problem? Proszę wyjaśnić, na czym polega problem (y), ponieważ nie możemy zgadnąć, patrząc na kod. Poinformuj nas, co dzieje się źle po uruchomieniu aplikacji. – klcjr89
Jest bardzo dobry film WWDC 2012 pokazujący, jak "malować palcem". – matt
Zacząłem uczyć się Objective-c przy tworzeniu aplikacji do rysowania, Myśląc o obrazie z obszarem alfa, a ten obszar może być nieregularny. Chcę tylko narysować punkt w obszarze alfa, kiedy przesunąłem palec po obrazie. – bencore