#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)
}