私はViewController iDragHomeViewController
そしてもう一つ
NSObject
クラスiDrag
「iDragHomeViewController.m」
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *dragView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];
[dragView setBackgroundColor:[UIColor greenColor]];
[self.view addSubview:dragView];
iDrag *drag = [[iDrag alloc]init];
[drag makeDraggableView:dragView];
}
「iDrag.m」
-(void)makeDraggableView: (UIView *)dragView {
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(cellPan:)];
[dragView addGestureRecognizer:panRecognizer];
}
- (void)cellPan:(UIPanGestureRecognizer *)iRecognizer {
UIView *viewToDrag = [[UIView alloc]init];
viewToDrag = iRecognizer.view;
CGPoint translation = [iRecognizer translationInView:[viewToDrag superview]];
viewToDrag.center = CGPointMake(iRecognizer.view.center.x + translation.x,
iRecognizer.view.center.y + translation.y);
[iRecognizer setTranslation:CGPointMake(0, 0) inView:[viewToDrag superview]];
}
ここで私が試みているのは、PanGesture を適用することにより、クラス内でこの " dragView
"(に属するiDragHomeViewController
) をドラッグ可能にすることです。iDrag
しかし、コードはクラッシュしています。
別のクラスで Pan アクションを処理するために使用することを提案する人がいるとは思いませんが、クラスだけNSNotification
で 1 行を書き込んでiDragHomeViewController
すべてを処理したくありiDrag
ません。
出来ますか ??
助けてください。