Как создать границы, используя изображение (актив) в Swift?

Я пишу приложение и, думая о дизайне для него, я пришла в голову мысль о необходимости добавить некоторые границы для элементов. Они должны быть не просто цветными, а какими-то изображениями / активами. Как я могу сделать это правильно? Идея сделать изображение с пустым пространством в центре и на границе, которое мне нужно, и затем установить его в качестве фона, кажется глупой и неправильной.

Кроме того, где я могу найти эти активы бесплатно?

ОБНОВЛЕНИЕ: Для тех, кто не понимает, чего я хочу, я добавил изображение просто случайной границы. Хотя я думаю, что устанавливать его просто как фоновое изображение, кажется плохой идеей, потому что я хочу, чтобы несколько элементов располагались близко друг к другу, чтобы не было несовпадений или удвоения этих границ. Поэтому я думал об использовании ресурса для создания границ для каждого элемента в соответствии с его формой и размером. Не знаю, возможно ли это и как это сделать.

Изображение границы здесь

1 ответ

Если вы ищете, как добавить цветную границу в UIImageView, попробуйте это добавить ниже extension к вашему коду:

extension UIImage {
    func imageWithBorder(width: CGFloat, color: UIColor) -> UIImage? {
        let square = CGSize(width: min(size.width, size.height) + width * 2, height: min(size.width, size.height) + width * 2)
        let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: square))
        imageView.contentMode = .center
        imageView.image = self
        imageView.layer.borderWidth = width
        imageView.layer.borderColor = color.cgColor
        UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, scale)
        guard let context = UIGraphicsGetCurrentContext() else { return nil }
        imageView.layer.render(in: context)
        let result = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return result
    }
}

И вы можете использовать это так:

let imgOriginal = UIImage.init(named: "Richie_Rich")
img.image = imgOriginal?.imageWithBorder(width: 2, color: UIColor.blue)

Этот ответ пришел от вопроса: Как добавить цветную рамку в UIImage в Swift?


Если вы не ищете это, пожалуйста, будьте точнее!

Другие вопросы по тегам