私は使用しています:
[button addTarget:self action:@selector(moved:) forControlEvents:UIControlEventTouchDragInside];
機能コード移動:
- (IBAction)moved:(id)sender {
UIButton *t = sender;
UITouch *touch = [touch self];
CGPoint touchPoint = [touch locationInView: self];
t.center = touchPoint;
}
だから、私がボタンをドラッグし始めると、突然左上隅に現れます(Coord:0; 0)。 CGPoint touchPoint = [touch locationInView:self];
が正しく動作しないため、これは問題だと思いました。
私は3つのクラスを持っています:viewControllerは、の実装を行います:
view = [[MainView alloc] initWithFrame:[self.view frame] ];
[self.view addSubview:view];
viewはclass mainview(サブクラスuiview)のオブジェクトです。 mainviewで私はクラスのオブジェクトを作るButton(subclass uiview):
[self addSubview:but];
次に、クラスButton Iでは、UIButtonを作成し、イベントUIControlEventTouchDragInsideに関連付けます(投稿の冒頭を参照)。
だから私はどのように私のコードを修正する必要があります、そのボタンはポイントを正しくタッチに移動???
P.S.私のひどい英語のために申し訳ありません=)
本当にUIControlEventTouchDragInsideに固執したい場合は、以下のスニペットを使用してください。個人的には、代わりに UIPanGestureRecognizer を使用します。
- (IBAction)moved:(UIButton *)sender {
UITouch *touch = [touch self];
CGPoint touchPoint = [touch locationInView: sender.superview];
sender.center = touchPoint;
}