移动UIViews以避免碰撞,例如重新排列Springboard上的图标

时间:2009-10-08 01:00:24

标签: iphone uiview

重新排列应用程序图标时,如何在iPhone上复制效果?它需要避免碰撞,并在捕捉到网格时重新排列UIView。

2 个答案:

答案 0 :(得分:17)

我写了一些示例代码来做这样的事情。

请参阅我的博客文章:Tiles以及相关的GitHub repository

答案 1 :(得分:1)

查看SDK中的MoveMe示例项目,以查看拖动和动画的基本示例。

您必须自己实施逻辑,以根据网格的几何形状和拖动操作的进度确定移动图标的位置。一旦知道图标需要去哪里,动画视图只需要几行代码。你会想做这样的事情:

CGRect newFrame = iconView.frame;
[UIView beginAnimations:@"SnapToGrid" context:nil];
newFrame.origin = newOriginSnappedToGrid;
iconView.frame = newFrame;
[UIView commitAnimations];

阅读“iPhone应用程序编程指南”中“窗口和视图”下的标题为“动画视图”的子部分。然后在标题为“动画视图”的标题下查看UIView类引用中的方法。