【发布时间】:2011-06-04 13:08:26
【问题描述】:
我想在一张图片上画一个矩形 该怎么做?
【问题讨论】:
-
你的意思是在图像上方画一些东西吗?
-
是的,我想在图像上画画。我可以在该图像上放置另一个图像或视图,这对我来说不是问题,但如何绘制?
标签: iphone ipad uiimageview
我想在一张图片上画一个矩形 该怎么做?
【问题讨论】:
标签: iphone ipad uiimageview
从阅读 Quartz 2D Programming Guide 开始,然后转到路径部分。
【讨论】:
如果您只想为图像添加一个简单的彩色矩形,您可以这样做:
UIImage *imageFile = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myImageFile" ofType:@"jpg"]];
UIImageView *myImageFileView = [[UIImageView alloc] initWithImage:imageFile];
myImageFileView.frame = CGRectMake(0, 0, 320, 480); //size of image view
[self.view addsubview:myImageFileView]; //I assume this is within a view controller .m
UIView *rectangle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; //A rectangle at point (0, 0) 50x50 in size.
rectangle.backgroundColor = [UIColor redColor]; //color the rectangle
[myImage addSubview:rectangle]; //add the rectangle to your image
[rectangle release];
[imageFile release];
[myImageFileView release];
【讨论】:
-(IBAction)Handeltap:(UIGestureRecognizer *)sender
{
if(sender.state==UIGestureRecognizerStateBegan)
{
tapPoint1 = [sender locationInView:sender.view];
NSLog(@"UIGestureRecognizerStateBegan and x=%d and y=%d",(int)tapPoint1.x,(int)tapPoint1.y);
img1=[[UIImageView alloc]initWithImage:nil];
[img1 setBackgroundColor:[UIColor lightTextColor]];
CGRect rect1=CGRectMake((float)tapPoint1.x,(float)tapPoint1.y,50,20);
NSLog(@"rect=%f and %f and %f and %f",rect1.origin.x,rect1.origin.y,rect1.size.width,rect1.size.height);
[img1 setFrame:rect1];
[self.view addSubview:img1];
[self.view bringSubviewToFront:img1];
}
if(sender.state==UIGestureRecognizerStateChanged)
{tapPoint2 = [sender locationInView:sender.view];
// NSLog(@"UIGestureRecognizerStateChanged and x=%d and y=%d",(int)tapPoint.x,(int)tapPoint.y);
[img1 setFrame:CGRectMake(img1.frame.origin.x,img1.frame.origin.y,(float)tapPoint2.x-img1.frame.origin.x,(float)tapPoint2.y-img1.frame.origin.y)];
}
if(sender.state==UIGestureRecognizerStateEnded)
{
tapPoint2 = [sender locationInView:sender.view];
NSLog(@"UIGestureRecognizerStateEnded and x=%d and y=%d",(int)tapPoint2.x,(int)tapPoint2.y);
[img1 setFrame:CGRectMake(img1.frame.origin.x,img1.frame.origin.y,(float)tapPoint2.x-img1.frame.origin.x,(float)tapPoint2.y-img1.frame.origin.y)];
}
}
添加点击手势并粘贴
UILongPressGestureRecognizer *ges11=[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(Handeltap:)];
[self.view addGestureRecognizer:ges11];
坦克帮我..
【讨论】: