2017-09-04 75 views
0

我畫了一個矩形。當我觸摸屏幕時,我可以改變寬度和高度。 默認情況下,我使x = 50,y = self.view.frame.height/2。我需要相對於x和y拉伸矩形。如何更改xy如何更改CGRect的x和y?

var scanRectangleRect = CGRect.zero 
var scanRectangle: UIView = UIView() 


func drawLine() { 
    self.view.addSubview(scanRectangle) 
    scanRectangle.backgroundColor = UIColor.gray 
    scanRectangleRect = CGRect(x: 50, y: self.view.frame.height/2, width: 400, height: 150) 

    scanRectangle.frame = scanRectangleRect 
    scanRectangle.center = CGPoint(x: scanRectangle.center.x, y: self.view.frame.height/2) 
    scanRectangle.isHidden = false 
} 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    scanRectangle.frame.size.height += 10 
    scanRectangle.frame.size.width += 10 
} 

回答

1
let distance: CGFloat = 10 
scanRectangle.frame = CGRect(x: scanRectangle.frame.origin.x + distance, 
          y: scanRectangle.frame.origin.y + distance, 
         width: scanRectangle.frame.size.width - distance, 
         height: scanRectangle.frame.size.height - distance) 

我認爲你的意思是在一些基點上縮放矩形。

0
scanRectangle.frame.origin.x += 10 
scanRectangle.frame.origin.y += 10 

https://developer.apple.com/documentation/coregraphics/cgrect/1454354-origin

如果你想增加矩形,但保持它集中在同一位置:

let delta = 10 

scanRectangle.frame.origin.x -= delta/2 
scanRectangle.frame.origin.y -= delta/2 
scanRectangle.frame.size.width += delta 
scanRectangle.frame.size.height += delta 

scanRectangle.frame = scanRectangle.frame.insetBy(dx: -10, dy: -10) 
+0

矩形正在移動,但我需要伸展它。 – kvv

+0

@Kazak你讀過https://developer.apple.com/documentation/coregraphics/cgrect作爲sulthan鏈接? – 2017-09-04 18:30:31

+0

@Sneak是的,我做到了。 – kvv

0
scanRectangle.frame.origin.x += 10; 
scanRectangle.frame.origin.y += 10; 

是你要求的嗎?

+0

我需要拉伸相對於x和y的矩形 – kvv