我在视图控制器中有一个标签。每次点击标签时,我都会将标签的位置移动到左侧。这是我迄今为止的,但我的标签不会在模拟中移动。我对标签有限制。大约100宽50高,它也集中在视图控制器中。用手势快速移动标签位置
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let tapGesture = UITapGestureRecognizer(target: gestureLabel, action: #selector(moveLabel))
gestureLabel.addGestureRecognizer(tapGesture)
}
func moveLabel(){
if(left){
moveLeft()
}
else{
moveRight()
}
}
func moveLeft(){
let originalX = gestureLabel.frame.origin.x
if(originalX < 0){
bringIntoFrame()
}
else{
gestureLabel.frame.offsetBy(dx: -50, dy: 0)
}
}
您需要更改约束的“常量”属性,而不是帧。 – Paulw11
除了Paulw11的评论,你需要为水平约束创建一个属性,所以你可以这样做:'horizontal.constant - = 50; view.layoutIfNeeded()'。 – Eendje
使用CGAffileTransform和translate来代替移动中心或更改偏移量。它会更容易。不需要额外的代码。 并且还设置:gestureLabel.userInteractionEnabled = true – Dari