2

アイデアは、文字が入った小さな円にドラッグ アンド ドロップ機能を実装することです。簡単そうですが、すぐにはできませんでした。問題は、小さな円を表す UIImageView がパンにまったく反応しないことです。ここに私が書いたコードがあります:

- (void)createLiterasAndPlacesForThemForCard:(UIView *)frontCard andWord:(NSString *)word;
for (int i=0; i<[word length]; i++) {
    UIImageView * oneChar = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"LetterFull"]];
    oneChar.frame = CGRectMake(26+i*24, 175, 23, 24);
    oneChar.backgroundColor = [UIColor clearColor];
    oneChar.userInteractionEnabled = YES;
    UIPanGestureRecognizer * oneCharPanGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(move:)];
    [oneCharPanGestureRecognizer setMinimumNumberOfTouches:1];
    [oneCharPanGestureRecognizer setMaximumNumberOfTouches:1];
    [oneCharPanGestureRecognizer setDelegate:self];
    [oneChar addGestureRecognizer:oneCharPanGestureRecognizer];
    [frontCard addSubview:oneChar];
}

ここに階層があります - 上記の「self」と呼ばれるviewControllerがあり、いくつかのカードを含むスクロールビューが含まれ、各カードにはドラッグできる小さな円があります。デリゲートを設定している行で警告が表示されますが、実際の問題ではないと思います。

「move:」メソッドのコードは次のとおりです。

- (void)move:(id)sender
{
    NSLog(@"THE PAN OCCURED");
    float firstX;
    float firstY;

    CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:self.view];

    if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) {

        firstX = [[sender view] center].x;
        firstY = [[sender view] center].y;
    }

    translatedPoint = CGPointMake(firstX+translatedPoint.x, firstY+translatedPoint.y);
    [[sender view] setCenter:translatedPoint];
}

そして、コンソールでも画面でも、パンに対する反応は見られません。助けてください。自分で解決策を見つけることができません。すでに userInteraction を有効にしていますが、役に立ちませんでした。

4

0 に答える 0