У меня есть UIImage с маской.Как я могу установить форму кнопки для этого изображения без прозрачного цвета.
Кнопки - это элементы управления, а элементы управления - это представления, а представления по сути являются прямоугольными, поэтому кнопка всегда будет занимать прямоугольное пространство.в иерархии представлений.Однако видимая часть представления (и, следовательно, кнопка) может быть любой, какой вы хотите, чтобы она была ... представление может иметь прозрачный фон и может рисовать себя так, как ему нравится.Представление также может притворяться, что событие касания не попадает в него, что может привести к тому, что представление кажется непрямоугольной формы с целью доставки касаний.Вы можете сделать это, переопределив hitTest(_:with:)
.
Кроме того, поймите, что вам не всегда нужно использовать кнопки для взаимодействия с объектами на экране.Если у вас есть изображение дома, например, и вы хотите, чтобы пользователь мог касаться разных частей дома, чтобы изменить его цвет или текстуру, вы можете отобразить дом в представлении, которое знает, где находятся разные части дома.в изображении.Вы можете использовать распознаватели жестов или обычный механизм обработки касаний, чтобы позволить пользователю взаимодействовать с различными областями, и эти области могут иметь любую форму, какую вам нравится.