swift - 自定义 UIImageView 边框

标签 swift

我正在尝试制作这样的边框:

Screen

使用此代码:

self.slot1.layer.cornerRadius = self.slot1.bounds.height / 2
self.slot1.layer.borderWidth = 1.5
self.slot1.layer.borderColor = UIColor.orange.cgColor 

它产生:

Screen2

如何在边框和实际图像之间添加“间距”?

最佳答案

你可以使用下面的扩展实现这个

extension UIImage {
    func imageWithInsets(insets: UIEdgeInsets) -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(
            CGSize(width: self.size.width + insets.left + insets.right,
                   height: self.size.height + insets.top + insets.bottom), false, self.scale)
        let _ = UIGraphicsGetCurrentContext()
        let origin = CGPoint(x: insets.left, y: insets.top)
        self.draw(at: origin)
        let imageWithInsets = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return imageWithInsets
    }
}

使用下面的代码在图像和边框之间添加空间,我在这里添加 20 你可以给你自己的空间

self.slot1.layer.cornerRadius = self.slot1.bounds.height / 2
self.slot1.layer.borderWidth = 1.5
self.slot1.layer.borderColor = UIColor.orange.cgColor
let image = self.slot1.image?.imageWithInsets(insets: UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20))
self.slot1.image = image

希望对您有所帮助!

关于swift - 自定义 UIImageView 边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075647/

相关文章:

swift - 如何在 SwiftUI 中的堆栈上设置背景颜色

ios - 缩放 UITextView 并保持文本清晰度

swift - 计时器立即计数而不是尊重间隔

ios - 当用户使用 swift 键入时,限制 UIAlertController 中文本字段的输入?

swift - NSNumber swift 字典到 userdefaults swift3

ios - addChild 在 SpriteKit 中不起作用

swift - 从 Swift 中的字符串中删除部分

ios - 设置多个 UIViewController 的最合乎逻辑的方法是什么?

ios - 同一 ViewController 的 3D Touch 快速操作

swift - 在 Swift 中从 ISO-8601 字符串中提取偏移值