【问题标题】:uiimage view and rectangleuiimage 视图和矩形
【发布时间】:2011-06-04 13:08:26
【问题描述】:

我想在一张图片上画一个矩形 该怎么做?

【问题讨论】:

  • 你的意思是在图像上方画一些东西吗?
  • 是的,我想在图像上画画。我可以在该图像上放置另一个图像或视图,这对我来说不是问题,但如何绘制?

标签: iphone ipad uiimageview


【解决方案1】:

从阅读 Quartz 2D Programming Guide 开始,然后转到路径部分。

【讨论】:

    【解决方案2】:

    如果您只想为图像添加一个简单的彩色矩形,您可以这样做:

        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];
    

    【讨论】:

    • 实际上我在视图上有一张图片。现在我想在该图像上绘制一个透明矩形。
    【解决方案3】:
    -(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];
    

    坦克帮我..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多