iPhone:在Image的透明部分设置imageView

时间:2017-01-05 06:32:02

标签: ios objective-c iphone swift

我正在制作一个应用程序,允许用户首先选择相框,然后他/她必须从画廊中为该相框选择2张照片(相框是一个图像,其中包含两个透明孔我们必须设置所选照片)并且他/她可以根据它们裁剪这些图像。在他/她完成裁剪之后,将使用所选择的相框打开新视图,并且将设置这两个裁剪的图像那两个透明的整体。我已经完成直到裁剪完成。

问题

如何在透明部分设置这两个图像,使其在所有设备中正确显示,并且透明部分根据用户将选择的相框不断变化。 These kind of photo frames i'm providing enter image description here

3 个答案:

答案 0 :(得分:3)

在视图上添加新图像。 添加手势以移动和调整(缩放)新图像,为新图像设置完美位置(即在帧的中心),然后将图像视图发送到主图像视图的背面。 之后渲染两个视图,并使用UIGraphicsContext创建新图像。

我有渲染代码。

    UIGraphicsBeginImageContextWithOptions(self.viewCombineImages.bounds.size, false, 0.0)
    self.viewCombineImages.layer.render(in: UIGraphicsGetCurrentContext()!)
    let image = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()

答案 1 :(得分:0)

如果上面的框架是.png文件,则可以使这些部分透明。我以为你需要三个UIImageViews。

上部 - 装饰框架 under-person1的图像视图/ person2&#39的图像视图。

如果用户选择两张图像,请在图像视图上应用每张图片。 并调整这些大小和坐标。你可以使用

[person1ImageView setFrame:CGRectMake(x,y,width,height)]; 

此外,您可以使用

旋转它们
person1ImageView.transform =  CGAffineTransformMakeRotation(radians); 

答案 2 :(得分:0)

根据您的要求,您可以设置3个ImageView。

  
      
  1. 使用Person1图像的图像视图。
  2.   
  3. 使用Person2图像的图像视图。
  4.   
  5. 带有帧图像的图像视图。
  6.   

所以子视图的堆栈就像UIViewController->UIView->Person Image View1 , Person ImageView 2 -> Frame Image View

喜欢此屏幕截图。

enter image description here

enter image description here

enter image description here

并且不需要透明图像位置只需将图像大小的一半放在帧的一半并将其设置在帧图像视图下方,您就可以像我的屏幕截图一样实现这一点。