Как я понимаю, вы устанавливаете borderWidth
и borderColor
для button.layer
.
На этом button.layer
размещаются все остальные подслои, которые вы добавляете к ним, поэтому ваша граница всегда находится сверху.
Таким образом, вы можете использовать дополнительный вид для рисования круга или ...
Просто удалите настройки borderWidth
и borderColor
для button.layer
и добавьте еще один подслой, который будет перекрывать вашу рамку.
Например:
func addBorder(borderWidth: CGFloat = 1.0, borderColor: UIColor = UIColor.blue) {
let layer = CALayer()
let frame = self.mybtn.frame
layer.frame = CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
layer.borderColor = borderColor.cgColor
layer.borderWidth = borderWidth
self.mybtn.layer.addSublayer(layer)
}
и в ViewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
addBorder()
addCircleBadge(20, color: UIColor.red)
}
Также одно обновление для addCircleBadge
public func addCircleBadge(_ width: CGFloat, color: UIColor) {
...
self.mybtn.layer.insertSublayer(layer, at: 0)
}