0

次の問題があります。
タッチでドラッグできるUIImageViewと、そのImage Viewの近くに配置したいツールバーがあります。これは、私が現在行っていることです:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
  //motion here;self.tool is toolbar View

  CGFloat a=self.tool.frame.size.width;
  CGFloat b=self.tool.frame.size.height;
  self.tool.frame=CGRectMake(self.frame.origin.x+self.frame.size.width/2+50, self.frame.origin.y+self.frame.size.height/2+50, a, b);
}

正常に動作しますが、ツールバーが画面の外に移動することがあります。私が外にいるかどうかを追跡し、ツールバーを別のポイントに移動する簡単な方法はありますか?

4

2 に答える 2

1

次のように確認できます。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
  //motion here;self.tool is toolbar View

  CGFloat a = self.tool.frame.size.width;
  CGFloat b = self.tool.frame.size.height;
  CGRect newFrame = CGRectMake(self.frame.origin.x+self.frame.size.width/2+50, 
                               self.frame.origin.y+self.frame.size.height/2+50,
                               a, b);

  // only set frame, if it is still in the bounds of self.superview
  if(CGRectContainsRect(self.superview.frame, newFrame)) {
    self.tool.frame = newFrame;
  }
}
于 2012-10-30T17:26:28.003 に答える
0

touchesMoved: ではなく、UIGestureRecognizer を使用する必要があります。すると、画像ビューのジェスチャ レコグナイザーがツールバー ビューを好きなように移動できます。

于 2012-10-30T17:27:37.653 に答える