Я создал пользовательский класс для UIButton, который я использовал для добавления закругленных углов и тени на кнопку, также используя @ IBInspectable.
Теперь я хочу использовать ту же кнопку для создания круглогодля выбора профиля изображения. Пользователь нажимает на круглую кнопку, представлена библиотека фотографий, пользователь выбирает фотографию и выбранное изображение добавляется к круглой кнопке.
Моя проблема в том, что после того, как пользователь выбирает изображение, изображение кнопки выглядит квадратным, а не круглым.
Я попытался поиграть со слоем imageView кнопки и попытался установить для него значение clipsToBounds или maskToBounds, но я думаю, что что-то упустил.
Вот код для пользовательской кнопки без компонента ImageView:
import UIKit
class RoundShadowButton: UIButton {
override init(frame: CGRect){
super.init(frame: frame)
imageView?.clipsToBounds = true
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
imageView?.clipsToBounds = true
}
@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable
var borderColor: UIColor? {
get {
let color = UIColor.init(cgColor: layer.borderColor!)
return color
}
set {
layer.borderColor = newValue?.cgColor
}
}
@IBInspectable
var shadowRadius: CGFloat {
get {
return layer.shadowRadius
}
set {
layer.shadowRadius = newValue
}
}
@IBInspectable
var shadowOffset : CGSize{
get{
return layer.shadowOffset
}set{
layer.shadowOffset = newValue
}
}
@IBInspectable
var shadowColor : UIColor{
get{
return UIColor.init(cgColor: layer.shadowColor!)
}
set {
layer.shadowColor = newValue.cgColor
}
}
@IBInspectable
var shadowOpacity : Float {
get{
return layer.shadowOpacity
}
set {
layer.shadowOpacity = newValue
}
}
}
![Button before selecting image](https://i.stack.imgur.com/MbtIC.png)
![Button after selecting image](https://i.stack.imgur.com/n9utL.png)