Как сделать двойные границы в UIImage с помощью Swift?

Dec 04 2020

Я попытался найти уловки с двойной рамкой в ​​Swift, чтобы сделать это так. У меня такое чувство, что это могло быть похоже на «двойную границу» в UIImage.

Дайте мне знать, если вы знаете коды. :)

Ответы

1 AJ16 Dec 04 2020 at 14:27

Вы можете просто взять UIView и добавить в него UIImageView. Очистите цвет UIView, чтобы очистить.

Это то, что я сделал с помощью раскадровки.

  1. Внутри него добавлены UIView и UIImageView, цвет представления установлен на чистый, а представление изображения - в 15 точках со всех сторон. Пожалуйста, измените в соответствии с вашими требованиями (см. Изображение 1).

  2. Это код контроллера представления (см. Изображение 2).

  3. Выход (см. Изображение 3).

Примечание : это всего лишь основная идея, хотя вы можете изменить цвет, ширину границы и т. Д. В соответствии с вашими требованиями.

Макет раскадровки

Посмотреть код контроллера

Выход

2 SumitJain Dec 04 2020 at 11:55

Вам нужно добавить borderColor (черный) и cornerRadius в слой по умолчанию UIImageView. Наряду с этим вам нужно добавить еще один подслой в UIImageView с borderColor серым.

imageView.layer.borderWidth = 4.0
imageView.layer.borderColor = UIColor.gray.cgColor
imageView.layer.cornerRadius = imageView.frame.width / 2

let borderLayer = CALayer()
borderLayer.frame = imageView.bounds
borderLayer.borderColor = UIColor.black.cgColor
borderLayer.borderWidth = 14.0
borderLayer.cornerRadius = borderLayer.frame.width / 2
imageView.layer.insertSublayer(borderLayer, above: imageView.layer)

См. Прилагаемую демонстрацию игровой площадки.

PeterDu Dec 04 2020 at 11:09

Я думаю, вы можете добавить 1 круг (UIView) в качестве подпредставления между UIImageView и UIImage. Например, вы можете инициализировать UIImageView с grayцветом для внешнего углового радиуса. Затем вы добавляете круг UIView и, наконец, UIImage.

Или альтернативой может быть добавление UIImage перед кругом UIView (с прозрачным фоном).

Я думаю, вы можете найти здесь похожий код: Image View Double Border