kla*_*kox 6 html5 area coords ios swift
我正在尝试为iOS应用程序(Swift)重新创建一些我已经在HTML5(使用map area-coords)中创建的东西.
我想展示一个与用户点击/触摸相互作用的人体图.身体存在让我们说20个不同的部分,用户可以选择一个或多个身体部位.对于每个身体部位,都有一个选定状态的图像,应该在选择一个部分时出现.单击选定的部件将取消选择它.在选择一个或多个部件之后,用户可以继续并且将在下一个部分获得关于这些部件的一些信息viewcontroller.我附上一张简化的图片来解释我的目标.
有人能解释一下实现这一目标的最佳方法吗?是否有可用于Swift的类似技术来创建这样的交互式图像?
谢谢!
固定的!
首先,我像这样向 UIImageView 添加了子图层
var path = UIBezierPath()
path.moveToPoint(CGPointMake(20, 30))
path.addLineToPoint(CGPointMake(40, 30))
// add as many coordinates you need...
path.closePath()
var layer = CAShapeLayer()
layer.path = path.CGPath
layer.fillColor = UIColor(red: 255, green: 0, blue: 0, alpha: 0.5).CGColor
layer.hidden = true
bodyImage.layer.addSublayer(layer)
Run Code Online (Sandbox Code Playgroud)
我重写了 TouchsBegan 函数,以便在点击形状时显示和隐藏。
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first! as? UITouch {
// get tapped position
let position = touch.locationInView(self.bodyImage)
// loop all sublayers
for layer in self.bodyImage.layer.sublayers! as! [CAShapeLayer] {
// check if tapped position is inside shape-path
if CGPathContainsPoint(layer.path, nil, position, false) {
if (layer.hidden) {
layer.hidden = false
}
else {
layer.hidden = true
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |