Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift3 如何将CGPoint从横向旋转到纵向图像方向?_Swift3_Uibezierpath_Cashapelayer_Cgpoint - Fatal编程技术网

Swift3 如何将CGPoint从横向旋转到纵向图像方向?

Swift3 如何将CGPoint从横向旋转到纵向图像方向?,swift3,uibezierpath,cashapelayer,cgpoint,Swift3,Uibezierpath,Cashapelayer,Cgpoint,我有一个画三角形的视图。点“A”leftPost和点“B”rightPost始终是静态的,彼此之间的距离相同。点击UIImageView可确定“尖端”或点“C”。当图像处于纵向模式时,我可以根据点的坐标重新创建UIImageView 但是,我需要以横向模式显示UIImage并表示相同的三角形。如何“旋转”坐标以实现此目的?我还暗示我没有从纵向和横向旋转屏幕。应用程序始终处于横向 import UIKit class ViewController: UIViewController {

我有一个画三角形的视图。点“A”
leftPost
和点“B”
rightPost
始终是静态的,彼此之间的距离相同。点击UIImageView可确定“尖端”或点“C”。当图像处于纵向模式时,我可以根据点的坐标重新创建UIImageView

但是,我需要以横向模式显示UIImage并表示相同的三角形。如何“旋转”坐标以实现此目的?我还暗示我没有从纵向和横向旋转屏幕。应用程序始终处于横向

import UIKit

class ViewController: UIViewController {

    let bezierPath = UIBezierPath()
    let shapeLayer = CAShapeLayer()
    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let shotGesture = UITapGestureRecognizer(target: self, action: #selector(shotOnNet))

        imageView.addGestureRecognizer(shotGesture)

        //Enable tapping on screen
        imageView.isUserInteractionEnabled = true

    }

    func setupBezierPath(tip: CGPoint) {

        let leftPost = CGPoint(x: 20, y: 50)
        let rightPost = CGPoint(x: 100, y: 50)

        bezierPath.move(to: leftPost)
        bezierPath.addLine(to: rightPost)
        bezierPath.addLine(to: tip)
        bezierPath.close()

    }

    func setupShapeLayer() {
        shapeLayer.path = bezierPath.cgPath
        shapeLayer.fillColor = UIColor.red.cgColor
        shapeLayer.lineWidth = 1.0
     shapeLayer.strokeColor = UIColor.black.cgColor
    }

    func shotOnNet(_ sender: Any) {

        let shot = (sender as! UITapGestureRecognizer).location(ofTouch: 0, in: imageView)

        setupBezierPath(tip: shot)
        setupShapeLayer()
        imageView.layer.addSublayer(shapeLayer)

    }
}

是否有理由需要修改坐标,而不是简单地对整个
UIImageView
应用旋转变换?是的,我实际上在CoreData中存储点击手势的值,以便重新创建三角形。上面的代码只是一个简单的例子。你找到解决方案了吗。如果有,请分享。