以下代碼是允許面板/視圖移動的簡單手勢識別器的示例。不是修改中心,而是修改原點[基本上通過設置目標視圖的新框架]。
所以你不必深入到gesture.view您可以在您的情況優化這個...等
-(void)dragging:(UIPanGestureRecognizer *)gesture
{
if(gesture.state == UIGestureRecognizerStateBegan)
{
//NSLog(@"Received a pan gesture");
self.panCoord = [gesture locationInView:gesture.view];
}
CGPoint newCoord = [gesture locationInView:gesture.view];
float dX = newCoord.x-panCoord.x;
float dY = newCoord.y-panCoord.y;
gesture.view.frame = CGRectMake(gesture.view.frame.origin.x+dX, gesture.view.frame.origin.y+dY, gesture.view.frame.size.width, gesture.view.frame.size.height);
}
斯威夫特4:
@objc func handleTap(_ sender: UIPanGestureRecognizer) {
if(sender.state == .began) {
self.panCoord = sender.location(in: sender.view)
}
let newCoord: CGPoint = sender.location(in: sender.view)
let dX = newCoord.x - panCoord.x
let dY = newCoord.y - panCoord.y
sender.view?.frame = CGRect(x: (sender.view?.frame.origin.x)!+dX, y: (sender.view?.frame.origin.y)!+dY, width: (sender.view?.frame.size.width)!, height: (sender.view?.frame.size.height)!)
}
請問答案幫幫我?如果是這樣,請檢查它是否正確或否則回覆... – TigerCoding 2011-02-12 21:13:55
他沒有回覆 - 這不是他想要的。 – xil3 2011-08-12 19:02:01
有沒有找到解決辦法?我會好奇的看到一個沒有使用三角洲的,因爲你聲稱看到。 – sean 2013-03-12 15:54:25