Swift:将文字标签插入圆形图像

时间:2016-07-26 18:39:40

标签: ios swift

我试图重新创建这样的内容,在那里我拉出用户的图像,然后覆盖"更改"标签在上面 - 但我似乎无法弄清楚如何。

(我也希望有一些与此标签相关的动作(例如,segue到新页面))

enter image description here

我的问题:我似乎无法弄清楚如何覆盖文本标签,但仍保持图像的圆形,并使图像的底部具有不透明的标签。

代码+详细信息:我有一个自定义UIView,其中包含一个Imageview-当我想添加一个图像时,我调用以下代码:

self.userProfilePic.addImage((userImg).roundImage(), factorin: 0.95)

在自定义视图中,这是图像的添加方式:

func addImage(imagein: UIImage, factorin:Float)
{
    let img = imagein
    imageScalingFactor = factorin

    if imageView == nil
    {
        imageView = UIImageView(image: img)
        imageView?.contentMode = .ScaleAspectFit
        self.addSubview(imageView!)
        self.sendSubviewToBack(imageView!)
        imageView!.image = img
    }
}

这是我的图像舍入代码(我不想碰):

extension UIImage
{
    func roundImage() -> UIImage
    {
        let newImage = self.copy() as! UIImage
        let cornerRadius = self.size.height/2
        UIGraphicsBeginImageContextWithOptions(self.size, false, 1.0)
        let bounds = CGRect(origin: CGPointZero, size: self.size)
        UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius).addClip()
        newImage.drawInRect(bounds)
        let finalImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return finalImage
    }
}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

尝试类似此视图层次结构的内容

UIView
!
!--UIImageView
!--UIButton

所以你选择UIView',首先添加UIImageView,而不是在图像视图的下半部分添加UIButton。现在将clipToBounds设置为yes。现在将此父视图层的所需角半径设置为如下

parentView.layer.cornerRadius = parentVirew.frame.size.width;

请记住,您必须制作方形尺寸的父视图,表示高度和宽度。获取圆形遮罩的宽度应该相同。稍微调整按钮位置。你肯定会得到结果。