ios - 尝试添加图层蒙版时 UIImage 消失

标签 ios swift uiimageview mask

我创建了这个函数来圆化 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
}()

如何在应用图层蒙版的同时让图像仍然显示在屏幕上。

最佳答案

我认为图像没有出现在屏幕上,因为您没有使用框架初始化 UIImageView。试试下面的代码片段:

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

关于ios - 尝试添加图层蒙版时 UIImage 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46170791/

相关文章:

ios - 为什么 Flutter 手机身份验证在我的真实设备上不起作用

ios - iOS 设备的唯一标识

ios - 如何使用由 Swift 编写的 Xcode 中 TabBarController 管理的 ViewController 处理 iOS 应用程序的静态 QuickActions

ios - 我想将图像保存在 UIImageView swift 3 的特定文件夹中

ios - Swift:在动画期间中途更改 UIImageView 图像

ios - 如何在 Swift 中设置游戏循环

ios - Swift:委托(delegate)/事件来自 C# 背景

swift - 获取 View 底部的 Y 坐标

iphone - 多个图像的平滑 UIImageView 动画

ios - UICollectionView 显示不同的单元格取决于方向