我有两个UIImageViews
。第一个(mainImage)与视图控制器的大小几乎相同。我也有一个较小的第二个(tempAddImage)。我想要做的是在完全相同的地方和大小上绘制小图片的大图片。我的以下代码可以完成这项工作,但会使较小的图像成为全尺寸。
UIGraphicsBeginImageContext(self.tempAddImage.frame.size);
[self.mainImage.image drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width,
self.mainImage.frame.size.height)
blendMode:kCGBlendModeNormal alpha:1.0];
[self.tempAddImage.image drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width,
self.mainImage.frame.size.height)
blendMode:kCGBlendModeNormal alpha:opacity];
self.mainImage.image = UIGraphicsGetImageFromCurrentImageContext();
[self.undoArray addObject:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext();
经过多次尝试后才有效:)非常感谢:
UIGraphicsBeginImageContext(self.mainImage.frame.size);
[self.mainImage.image drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width, self.mainImage.frame.size.height) blendMode:kCGBlendModeNormal alpha:1.0];
[self.tempAddImage.image drawInRect:CGRectMake(self.tempAddImage.frame.origin.x, self.tempAddImage.frame.origin.y - (self.navigationController.navigationBar.frame.size.height + 20.0f), self.tempAddImage.frame.size.width, self.tempAddImage.frame.size.height) blendMode:kCGBlendModeNormal alpha:opacity];
self.mainImage.image = UIGraphicsGetImageFromCurrentImageContext();
[self.undoArray addObject:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext();
答案 0 :(得分:0)
您正在两个drawInRects中使用mainImages帧大小。
答案 1 :(得分:0)
也许是这样的:
UIImage *tmpImage = [UIImage imageNamed:@"tmp"];
UIImageView *tmpImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0,tmpImage.size.width, tmpImage.size.height)];
tmpImageView.image = tmpImage;
[mainImg addSubview:tmpImageView];
代码未经过测试..