【问题标题】:How to Drag a UIImageView along a Bezier Path如何沿贝塞尔路径拖动 UIImageView
【发布时间】:2014-08-13 11:17:52
【问题描述】:

我正在开发一个游戏,其中UIImageView 沿着Bezier 路径移动。我想为移动的UIimageview 提供用户交互,以便用户可以通过触摸UIImageView 来引导UIImageView,并将其拖到路径上!如何做到这一点?

【问题讨论】:

    标签: ios iphone c cocoa-touch sprite-kit


    【解决方案1】:

    只需使用平移手势并将其添加到 UIImageView 并提供用户移动它的路径。Pan Gesture

    此链接可能有助于理解和实施相同的内容。还有什么要告诉我的。

    【讨论】:

    • 我想为移动的 UIimageview 提供用户交互,以便用户可以通过触摸 UIImageview 并围绕 Bezier 路径拖动 UIImageview 来引导 UIImageView。
    • 所以我已经为您提供了链接,您只需浏览一下,看看它是否适合您。希望这能让我知道我会为你找到其他东西
    • 对于那个贝塞尔路径,您应该将它作为一条大线/绳子提供给用户,以便他/她可以知道他/她必须沿着哪条路径移动该图像。
    • 休息我对你的游戏和它的情节不太了解。
    • 我看到该链接只是为了在我想要的屏幕上移动图像,当用户触摸图像时,图像拖动并流过预定义的路径。
    【解决方案2】:

    您必须检查触摸点坐标是否在 Beizer Path 内。如果它在里面允许 UITouch 和移动,否则不允许。相应地给出If Condition

    【讨论】:

    • 你能给我一些代码或文档如何做到这一点。
    【解决方案3】:

    请试试这个...

    这里 selectedImageCat 是 gobal uiimageview 对象,而 touchimgView 是 select(touched) imageview

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
        {
            for (UITouch *touchPoint in touches)
            {
                  if(CGRectContainsPoint(touchimgView.frame, [touchPoint locationInView:self.view]))
            selectedImageCat=(UIImageView*)touchimgView;
    
            }
        }
    
        -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
        {
            if (selectedImageCat!=nil)
            {
                CGPoint pt = [[touches anyObject] locationInView:self.view];
                [selectedImageCat setCenter:pt];
            }
        }
    
        -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
        {
    
    
            //here you provide final frame for touchimgView object
        }
    

    【讨论】:

    • 已经完成它是为了在屏幕上移动图像而不是选择路径
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2018-06-23
    • 2012-11-16
    • 1970-01-01
    相关资源
    最近更新 更多