1

CandidateViewがカスタムビューコントローラであるViewdidload内

for (int i = 0; i < 9 ; i++) {
    for (int j = 0; j < 3; j++) {
        CandidateView *candView = [[CandidateView alloc]init];
        candView.view.frame = CGRectMake(15 + i*186 ,17 + j*145, 158,130);
        [candView.btnCandidate addTarget:self action:@selector(wasDragged:withEvent:) forControlEvents:UIControlEventTouchDragInside];
        [mainScroll addSubview:candView.view];
    }
}

これが方法です

-(void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event
{

    UITouch *touch = [[event touchesForView:button] anyObject];
    // get delta
    CGPoint previousLocation = [touch previousLocationInView:button];
    CGPoint location = [touch locationInView:button];
    CGFloat delta_x = location.x - previousLocation.x;
    CGFloat delta_y = location.y - previousLocation.y;

    // move button
    button.center = CGPointMake(button.center.x + delta_x,button.center.y + delta_y);
}

このコードから、CandidateViewのボタンを移動できます。CandidateView全体をドラッグするか、UIViewcontrollerの代わりにUIViewを作成する必要があります。誰か助けてもらえますか?前もって感謝します..:)

4

1 に答える 1

1

UIView を作成し、その中にすべてを配置します。UIView は「UIViewController」の画面を埋める必要があり、ドラッグ方法もうまく機能するはずです :) 頑張ってください! (*検討したい別の解決策は、ネストされたすべてのオブジェクトを含む UIScrollView を作成することです)

于 2013-02-14T12:52:07.530 に答える