UIImage в закругленном UIView Swift - PullRequest
0 голосов
/ 31 мая 2019

Я создал UIView и в UIView я добавил Imageview. Я дал угловой радиус UIView, и он работает, теперь у меня есть притча, что изображение, которое я помещаю внутрь, не соответствует угловому излучению вида, и в результате оно показывает все изображение в виде прямоугольника вместо того, чтобы иметь верхнюю часть и Угол topRight изогнут к тому же радиусу UIView. мой код показан ниже.

let bgView: UIView = {
        let bgView = UIView()
        bgView.backgroundColor = .white
        return bgView
    }()

    let propertyImage: DefaultImageView = {
        let img = DefaultImageView(frame: .zero)
        img.clipsToBounds = true
        img.layer.masksToBounds = true
        img.image = #imageLiteral(resourceName: "icons8-name-filled-30")
        img.contentMode = .scaleToFill
        return img
    }()

это дает округлое изображение карты

extension UIView {
func addShadowAndRoundCorners() {
        layer.shadowOpacity = 1
        layer.shadowOffset = CGSize.zero
        layer.shadowColor = UIColor.darkGray.cgColor
        layer.cornerRadius = 12
    }
 }

поэтому я добавил округлый стиль, как bgView.addShadowAndRoundCorners

Как сделать так, чтобы просмотр изображений оставался в закругленных углах UIView

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Необходимо также добавить clipsToBounds to yes к представлению контейнера, чтобы заставить подвиды не отображать снаружи:

bgView.clipsToBounds = true

Или вы можете просто округлить само изображение.

0 голосов
/ 10 июня 2019

Если вы хотите, чтобы только углы topLeft и topRight UIImageView были округлены, вам, вероятно, придется использовать маскирование перед отображением изображения.

Создайте CGContext того же размера, что и изображение, создайте маску вCGContext, затем нарисуйте изображение в контексте, маска будет применена, затем получите новое изображение из контекста и поместите его в .image UIImageView.

...