#cocoa-touch #ios #button #uikit
#cocoa-touch #iOS #кнопка #uikit
Вопрос:
Мне нужно сделать несколько треугольных кнопок, которые перекрывают друг друга.
В то время как UIButtons могут использовать прозрачные изображения в качестве фона, а UIControls могут иметь пользовательские представления, область нажатия у них всегда квадратная. Как я могу создать треугольную область попадания для своих кнопок?
Я использую фоновую версию FLash, поэтому обычно я бы создал область нажатия для своего просмотра, но я не верю, что смогу сделать это в Cocoa.
Есть какие-нибудь советы?
Ответ №1:
Вы можете добиться этого, создав подкласс UIButton
и предоставив свой собственный:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
// return YES if point is inside the receiver’s bounds; otherwise, NO.
}
В документации Apple по UIView приводятся подробности, такие как подтверждение того, что point
это уже находится в системе координат получателя.
Комментарии:
1. Спасибо, я изучу это. Здесь есть хорошая статья, описывающая решение с использованием изображения с альфа-символом iphonedevelopment.blogspot.com/2010/03 /…
2. Это рабочее решение. Но этот метод вызывается, даже если я касаюсь области за пределами кнопки. Не будет ли это ненужных вычислений, особенно с несколькими кнопками?