在Swift中,如何通过获取另一个View的位置来设置View的位置?

时间:2015-07-16 06:11:03

标签: ios swift

在我的程序中,我有一个名为“previewView”的视图应用于显示摄像头捕获窗口的区域。我试图根据“previewView”显示的信息使用脚本而不是从故事板中拖动新视图来应用另一个视图,并且红色的视图/框架应该与“previewView”位于相同的位置。现在,我得到了一个错误的结果,如下图所示。

The wrong display

我为实现该功能而编写的代码如下:     让targetRegion = CALayer()

func addTargetLayer(){
    //try to convert the position of
    //the "previewView" to the absolute position of screen
    var tempPreviewView = previewView.convertPoint(previewView.center, toView: nil)

    //apply the position converted previously
    //to the targetRegion in the red colour
    targetRegion.frame = CGRect(origin: CGPoint(x: tempPreviewView.x, y: tempPreviewView.y), size: CGSize(width: previewView.frame.width, height: previewView.frame.height))

    let color = UIColor.redColor()
    targetRegion.backgroundColor=color.CGColor
    targetRegion.opacity = 0.5
    self.view.layer.addSublayer(targetRegion)


}

我也尝试过以下帖子中建议的答案,但它对我不起作用:Using convertPoint to get the relative position inside a parent UIView

任何人都有一些想法?感谢

1 个答案:

答案 0 :(得分:0)

我明白了。它删除所有约束后工作。但是我想到了下一个问题。如何将从其他帧复制的约束设置为使用脚本创建的帧?