我已经编写了在(TestView)中添加图像视图的代码。在UIview
用于添加图像的触摸委托方法中,我点击视图中的任何位置,然后将图像添加到UIview
(testview)中,并且该图像被添加到可变数组中,该数组是在 appdelegate 类中声明。另一个数组包含该图像的框架。每次点击添加图像时都会完成上述过程。在删除过程中,我们删除可变数组的图像和相关索引。我们还可以将任何图像移动到视图中的任何位置。
但是构建工作非常缓慢并且在 ipad 设备上崩溃并显示以下错误:-
Program received signal: “0”. Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint point_Temp = [[[event allTouches] anyObject] locationInView:TestView];
point_TouchStart = [[[event allTouches] anyObject] locationInView:TestView];
bool_ValidtouchFound = NO;
for(int int_Temp=0; int_Temp < [appDelegate_iPad.marry_ContainsRect count]; int_Temp+=1)
{
NSValue *val_Temp = [appDelegate_iPad.marry_ContainsRect objectAtIndex:int_Temp];
CGRect rect_Temp = [val_Temp CGRectValue];
NSLog(@"rect_Temp = %f, %f",rect_Temp.origin.x,rect_Temp.origin.y);
if(CGRectContainsPoint(rect_Temp, point_Temp))
{
bool_ValidtouchFound = YES;
int_TextIndex = int_Temp;
imgview_Temp = [appDelegate_iPad.marry_ContainsImages objectAtIndex:int_TextIndex];
for(UIImageView *imgview_Transparent in [imgview_Temp subviews])
imgview_Dummy = imgview_Transparent;
[imgview_Dummy setFrame:CGRectMake(0.0, 0.0, imgview_Temp.frame.size.width, imgview_Temp.frame.size.height)];
[imgview_Dummy setBackgroundColor:[UIColor clearColor]];
[imgview_Temp addSubview:imgview_Dummy];
if([appDelegate_iPad.marry_ContainsImages count] > int_Temp)
imgview_Text = [appDelegate_iPad.marry_ContainsImages objectAtIndex:int_Temp];
break;
}
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
if(bool_IsTextReadyToMove
&& ![appDelegate_iPad.CurrentFeatureStatus isEqualToString:@"Pencil"]
&& ![appDelegate_iPad.CurrentFeatureStatus isEqualToString:@"Eraser"]
&& ![appDelegate_iPad.CurrentFeatureStatus isEqualToString:@"Brush"])
{
float float_difx = [[touches anyObject] locationInView:imgview_Text].x - [[touches anyObject] previousLocationInView:imgview_Text].x;
float float_dify = [[touches anyObject] locationInView:imgview_Text].y - [[touches anyObject] previousLocationInView:imgview_Text].y;
CGAffineTransform transform_NewTemp = CGAffineTransformTranslate(imgview_Text.transform, float_difx, float_dify);
imgview_Text.transform = transform_NewTemp;
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if(bool_ValidtouchFound)
{
if(appDelegate_iPad.bool_IsTextReadyToDraw)// code to draw images
{
UIImage *img_Temp = [UIImage imageNamed:appDelegate_iPad.str_ImageName];
UIImageView *imgview_DrawText = [[UIImageView alloc]initWithImage:img_Temp ];
CGRect rect_Temp = CGRectMake(point_Temp.x, point_Temp.y, img_Temp.size.width, img_Temp.size.height);
[imgview_DrawText setFrame:rect_Temp];
[imgview_DrawText setTag:101];
UIImageView *imgview_SubView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 0.0, img_Temp.size.width, img_Temp.size.height)];
[imgview_SubView setBackgroundColor:[UIColor clearColor]];
[imgview_DrawText addSubview:imgview_SubView];
// [imgview_SubView sendSubviewToBack:imgview_DrawText];
// [imgview_DrawText bringSubviewToFront:imgview_SubView];
// imgview_DrawText.layer.borderColor = [[UIColor blackColor] CGColor];
// imgview_DrawText.layer.borderWidth =0.6f;
[appDelegate_iPad.marry_ContainsRect addObject:[NSValue valueWithCGRect:rect_Temp]];
[appDelegate_iPad.marry_ContainsImages addObject:imgview_DrawText];
[TestView addSubview:imgview_DrawText];
if(imgview_DrawText)
{
[imgview_DrawText release];
imgview_DrawText = nil;
}
if(imgview_SubView)
{
[imgview_SubView release];
imgview_SubView = nil;
}
if(img_Temp)
img_Temp = nil;
NSLog(@"Array Count After Addition = %d",[appDelegate_iPad.marry_ContainsRect count]);
}
else // Code for Delete images
{
for(int int_Temp=0; int_Temp < [appDelegate_iPad.marry_ContainsRect count]; int_Temp+=1)
{
NSValue *val_Temp = [appDelegate_iPad.marry_ContainsRect objectAtIndex:int_Temp];
CGRect rect_Temp = [val_Temp CGRectValue];
if(CGRectContainsPoint(rect_Temp, point_Temp))
{
UIImageView *imgview_RemoveText = [appDelegate_iPad.marry_ContainsImages objectAtIndex:int_Temp];
[imgview_RemoveText removeFromSuperview];
imgview_RemoveText = nil;
[appDelegate_iPad.marry_ContainsRect removeObjectAtIndex:int_Temp];
[appDelegate_iPad.marry_ContainsImages removeObjectAtIndex:int_Temp];
break;
}
}
NSLog(@"Array Count After Deletion = %d",[appDelegate_iPad.marry_ContainsRect count]);
}
}
}
所以,请为我提供帮助。谢谢