Как создать закругленную метку / кнопку с неинтерактивной обрезанной областью с помощью Swift 3

#swift #uibutton #rounded-corners

#swift #uibutton #закругленные углы

Вопрос:

Дилемма: как создать округлую кнопку с неинтерактивной обрезанной областью.

Пример:

 myButton.layer.cornerRadius = 50
myButton.clipsToBounds = true
 

Результат:

введите описание изображения здесь

Отлично! Хотя я не хочу, чтобы серые области оставались интерактивными. Мы абсолютно можем настроить кнопку, нарисовать фигуру внутри представления с помощью UIBezierPath и проверить, находятся ли координаты каждого клика в пределах нашего пользовательского пути, а затем реагировать. И все же я хочу верить, что есть более простой способ!

Был бы очень признателен за любые идеи! Спасибо!

Комментарии:

1. Вы можете попробовать проверить x / y точки касания в сравнении с округленной областью вслух для точки x / y.. Если внутри сделайте что-нибудь еще, например, сделайте это.

2. @Dasem Большое вам спасибо за ваше предложение. Это хороший вариант.

Ответ №1:

Самый простой способ, который существует для меня:

 override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        return UIBezierPath(roundedRect: self.bounds, cornerRadius: self.cornerRadius).contains(point)
}