我正在开发一款小游戏,用户可以在其中拖动图像的行和列以解决难题。 拼图不使用整个屏幕,“拼图区”位于0,160到320,480的矩形区域内。
现在,如果用户向上拖动图像列,则该列中的顶部图像将显示在“该”拼图区域之外。我怎么才能只显示图像的那部分,它仍然在拼图区域内。喜欢没有显示整个50x50像素的图像,但只有较低的40x50像素等?
答案 0 :(得分:1)
您只需要正确设置视图上的帧。如果你的拼图视图框架在顶部的(0,160)点结束,那么你添加到它的任何子视图;例如,当它们移出框架时,它们将被隐藏。
答案 1 :(得分:0)
希望我不会过分简化这个问题,但是我能想到的更简单的方法之一就是在移动拼图时保持适当的视图结构。
即。只要屏幕上半部分的视图在视图层次结构上高于拼图块(您可以通过正确维护子视图来确保这一点),如果拼图块在其下方移动,则拼图块将隐藏在顶视图下方
这是你需要的吗?
干杯。
答案 2 :(得分:0)
我只是试着给你一些想法。希望你能用它实现......
首先使用touchesBegan和touchesMoved方法来检测图像被拖动的像素数。同时你也可以将图像的帧移动到一个新的坐标,隐藏图像的一部分.... tat是在拼图区域之外......
希望这会有所帮助......
myImageView.frame=CGRectMake(0,0,50,50);
让上面的那个是实际的框架。现在你已经收到了用户从触摸方法移动图像的像素数。让它成为一些y1。要隐藏图像视图的一部分,请重新构建像这样的图像视图,
myImageView.frame=CGRectMake(0,-y1,50,50);
负y1因为你想要离开屏幕.. 希望这会有所帮助。