代码之家  ›  专栏  ›  技术社区  ›  Mr. Man

UIImage在尝试添加层掩码时消失

  •  1
  • Mr. Man  · 技术社区  · 7 年前

    我创建了这个函数来在 UIImageView

    func roundCorners(corners: [UIRectCorner], imageView: UIImageView) -> CAShapeLayer {
        let maskPath = UIBezierPath.init(roundedRect: imageView.bounds, byRoundingCorners:[.topLeft], cornerRadii: CGSize.init(width: 7.0, height: 7.0))
        let maskLayer = CAShapeLayer()
        maskLayer.frame = imageView.frame
        maskLayer.path = maskPath.cgPath
        return maskLayer
    }
    

    topLeftImage 这样地: topLeftImage.layer.mask = roundCorners(corners: [.topLeft], imageView: topLeftImage)

    let topLeftImage: UIImageView = {
        let iv = UIImageView()
        iv.image = #imageLiteral(resourceName: "myImage")
        iv.layoutIfNeeded()
        iv.translatesAutoresizingMaskIntoConstraints = false
        iv.contentMode = UIViewContentMode.scaleAspectFill
        iv.layer.masksToBounds = true
        iv.clipsToBounds = true
        return iv
    }()
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   laxman khanal    7 年前

    我认为图像没有出现在屏幕上,因为您没有使用frame初始化UIImageView。请尝试以下代码段:

    let iv = UIImageView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))