IOS SWIFT создать округленное изображение профиля, как Twitter, Instagram,
3 ответа
Вышеупомянутые способы хороши, но вы не можете добиться точного вывода, как на изображении выше. Например, вы не можете получить альфа-эффект.
Я предлагаю простой способ сделать это.
1) Добавить новое изображение в проект с прозрачным фоном с Opocity и кругом.
2) Добавьте новый imageView выше в mainview, как показано ниже.
let image = UIImageView(frame: view.bounds)
mage.image = UIImage.init(named:"imageName")
view.addSubview(image)
Тогда вывод должен быть согласно вашему требованию.
У каждого вида есть нижележащий слой, к которому вы применяете угловой радиус. Затем вы должны применить clipToBounds к этому слою, чтобы применить эту маску к вышележащему UIView. Радиус угла должен быть вдвое меньше ширины вида, чтобы получить эффект круга. В противном случае углы обзора будут округлены.
Например:
let square = UIView()
square.center = view.center
square.bounds.size = CGSize(width: 100, height: 100)
square.backgroundColor = .red
view.addSubview(square)
square.layer.cornerRadius = 50
square.clipsToBounds = true
Обязательно импортируйте QuarzCore.
func maskRoundedImage(image: UIImage, radius: CGFloat) -> UIImage {
let imgView: UIImageView = UIImageView(image: image)
let layer = imgView.layer
layer.masksToBounds = true
layer.cornerRadius = radius
UIGraphicsBeginImageContext(imgView.bounds.size)
layer.render(in: UIGraphicsGetCurrentContext()!)
let roundedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return roundedImage!
}