Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过触摸移动图像并将其放置在iphone中的其他位置_Iphone_Objective C - Fatal编程技术网

如何通过触摸移动图像并将其放置在iphone中的其他位置

如何通过触摸移动图像并将其放置在iphone中的其他位置,iphone,objective-c,Iphone,Objective C,我正在开发一个“配对正确”的答案应用程序 这里将有两个部分(例如动物和腿) 在动物区将有母鸡、狗、牛、狐狸等(这些选项将是静态的) 现在在支腿部分下面将有2,4,5,6等 2、4、5、6等为随机顺序 用户将假设选择“2”并移动到“hen”,则匹配是正确的,并将奖励一分 如果用户选择“2”并移动到“dog”,则比赛是错误的,不得分 因此,我如何实现移动功能,并检查正确的匹配 我希望我已经详细解释了我的疑问,如果没有,请原谅我,如果需要的话,我准备解释更多 谁能帮帮我吗 提前感谢因为它是静态的,所以

我正在开发一个“配对正确”的答案应用程序

这里将有两个部分(例如动物和腿)

在动物区将有母鸡、狗、牛、狐狸等(这些选项将是静态的)

现在在支腿部分下面将有2,4,5,6等

2、4、5、6等为随机顺序

用户将假设选择“2”并移动到“hen”,则匹配是正确的,并将奖励一分

如果用户选择“2”并移动到“dog”,则比赛是错误的,不得分

因此,我如何实现移动功能,并检查正确的匹配

我希望我已经详细解释了我的疑问,如果没有,请原谅我,如果需要的话,我准备解释更多

谁能帮帮我吗


提前感谢

因为它是静态的,所以我猜您将拥有每个标签(腿)的帧位置。您可以使用
touchesbeated:withEvent:
方法中的
CGRectContainsPoint
查找已选择的标签

您可以通过在
触摸移动:withEvent:
方法中连续设置标签的帧位置来移动标签

同样,您必须找到该标签是否与动物侧的任何标签相交

编辑:
要移动视图,请参见

中的清单2-4,因为它是静态的,所以我猜每个标签(腿)的帧位置都是静态的。您可以使用
touchesbeated:withEvent:
方法中的
CGRectContainsPoint
查找已选择的标签

您可以通过在
触摸移动:withEvent:
方法中连续设置标签的帧位置来移动标签

同样,您必须找到该标签是否与动物侧的任何标签相交

编辑:
要移动视图,请参见

中的清单2-4。如果不需要拖动它,只需为腿部部分设置一些按钮,并使用随机变量为它们设置标题(或任何图像)。在该按钮的回调中,“记住”按下了哪些按钮(可选,将其他按钮userIntractionAnabled属性设置为“否”)。然后,为你的动物区做更多的按钮。当用户按下其中一个tham时,只需将腿部按钮移动到任何位置:

[UIView animateWithDuration:1 animations:^{
        [button setCenter:CGPointMake(X, Y)];
    }];
以防万一: 在按钮回调中有一个“发件人”值。这个按钮按下了。因此,您可以使用它:

[UIView animateWithDuration:1 animations:^{
            [sender setCenter:CGPointMake(X, Y)];
        }];

如果您不需要拖动它,只需为legs部分设置一些按钮,并使用随机变量为它们设置标题(或任何图像)。在该按钮的回调中,“记住”按下了哪些按钮(可选,将其他按钮userIntractionAnabled属性设置为“否”)。然后,为你的动物区做更多的按钮。当用户按下其中一个tham时,只需将腿部按钮移动到任何位置:

[UIView animateWithDuration:1 animations:^{
        [button setCenter:CGPointMake(X, Y)];
    }];
以防万一: 在按钮回调中有一个“发件人”值。这个按钮按下了。因此,您可以使用它:

[UIView animateWithDuration:1 animations:^{
            [sender setCenter:CGPointMake(X, Y)];
        }];
.h视图控制器

@interface TouchViewController : UIViewController {
    IBOutlet UIView *viewImage;
    IBOutlet UILabel *touchesLabel;
    CGPoint lastPoint;
}

@property (nonatomic, retain) IBOutlet UIView  *viewImage;
@property (nonatomic, retain) IBOutlet UILabel *touchesLabel;

-(void) redrawView:(CGPoint) lpoint;

@end
in.m实现文件

@implementation TouchViewController

@synthesize   touchesLabel,viewImage;

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    lastPoint = [touch locationInView:self.view];
    [self redrawView:lastPoint];
}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];  
    lastPoint = [touch locationInView:self.view];
    [self redrawView:lastPoint];
}

-(void) redrawView:(CGPoint) lpoint
{
    viewImage.frame=CGRectMake(lpoint.x, lpoint.y, 40, 30);
}

- (void)dealloc {
    [viewImage release];
    [touchesLabel release];
    [super dealloc];
}

@end
*注意ViewImage是UIView类型,但包含图像…您能告诉我如何在stackoverflow上上载,以便我在这里上载项目(如果您需要)。

.h viewController

@interface TouchViewController : UIViewController {
    IBOutlet UIView *viewImage;
    IBOutlet UILabel *touchesLabel;
    CGPoint lastPoint;
}

@property (nonatomic, retain) IBOutlet UIView  *viewImage;
@property (nonatomic, retain) IBOutlet UILabel *touchesLabel;

-(void) redrawView:(CGPoint) lpoint;

@end
in.m实现文件

@implementation TouchViewController

@synthesize   touchesLabel,viewImage;

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    lastPoint = [touch locationInView:self.view];
    [self redrawView:lastPoint];
}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];  
    lastPoint = [touch locationInView:self.view];
    [self redrawView:lastPoint];
}

-(void) redrawView:(CGPoint) lpoint
{
    viewImage.frame=CGRectMake(lpoint.x, lpoint.y, 40, 30);
}

- (void)dealloc {
    [viewImage release];
    [touchesLabel release];
    [super dealloc];
}

@end

*注意ViewImage是UIView类型,但包含图像…您能告诉我如何在stackoverflow上上载,以便我可以在此处上载项目(如果需要)。

是否需要将其拖动?或者只是移动?你需要拖动它吗?或者只是移动?我是第一次实现这一点。你能为这一点建议任何教程或示例代码吗?谢谢你的帮助。你能告诉我检测正确匹配的代码吗?我是第一次实现这一点。你能为这一点建议任何教程或示例代码吗。,谢谢你的帮助。你能告诉我检测正确匹配的代码吗。你能更详细地告诉我如何检测正确匹配,即狗-4。你可以将标签设置为所有腿部按钮和动物按钮([button setTag:(任意数字)];)并查看按下按钮的标签,你能更详细地告诉我如何检测正确的匹配,即狗-4。你可以将标签设置为所有腿部按钮和动物按钮([button setTag:(任意数字)];)并查看按下按钮的标签触摸视图后,你可以获得点坐标,然后重置图像框架。我这样做是为了一个UIImageView。通常对所有图像执行此操作,然后如果要垂直对齐,请检查正确的图像对是否具有相同的y坐标和+/-10点错误。@coolanikothari,非常感谢。但我想要的是拖动图像并将其放置在不同的位置。请告诉我如何实现。触摸视图后,您可以获得点坐标,然后重置图像的帧。我这样做是为了一个UIImageView。通常对所有图像执行此操作,然后检查正确的图像对是否具有相同的y坐标,如果要垂直对齐,请检查+/-10点错误。@coolanikothari,非常感谢。但我想要的是拖动图像并将其放置在不同的位置。请告诉我如何实现此操作。