Я создаю это структурировано через маски:
Каждый шестиугольник должен быть кликабельным. Это код, который я использовал:
// To create one masked hexagun
let hex = UIImage(named: "hexum")
let mask = CALayer()
mask.contents = hexum!.CGImage
mask.frame = CGRectMake(0, 0, hex!.size.width, hex!.size.height)
let img = UIImageView(image: UIImage(named: "img"))
img.layer.mask = mask
img.layer.masksToBounds = true
// Gesture Recognizer
let singleTap = UITapGestureRecognizer(target: self, action: "tapDetected")
singleTap.numberOfTapsRequired = 1
img.addGestureRecognizer(singleTap)
img.userInteractionEnabled = true
func tapDetected() {
print("Clicked!")
}
Проблема в том, что область щелчка больше, чем маска, что вызовет неудобство перекрытия областей друг с другом. Что-то вроде этого:
Желтая рамка показывает интерактивную область (на самом деле она не видна)
Я новичок, это может быть тривиальная проблема, но вы можете помочь мне решить? Спасибо.