如何将对象移动到排列?

大家

我有一个问题,我想实现一个UI,像iOS桌面,到目前为止我可以安排

通过下面的代码对象:

int k=0; int j; for (int i=0; i<[items count]; i++) { //k is row j=i%3; if (j==0) { k++; if (k%3 == 1) { k = 1; } } [button setFrame:CGRectMake(25+(i%3*95), 35+((k-1)*140), 100, 100)]; 

所以,这个视图看起来像这样

 ABC DEF GHI 

现在,让它进入编辑模式,在E和F之间拖放一个拖放

所以有很多事情需要做

B和C会左移,D会在BC之后上升

E左移(如何实现这些animation???)

 BCD EAF GHI 

我search苹果示例,我只findMoveme这个示例,但它只有一个对象

任何build议或示例代码将是很大的帮助:)

谢谢

韦伯

当用户移动一个button,你必须先find它的新索引。

 int j = (button.frame.origin.x - 25) / 95; int k = (button.frame.origin.x - 35) / 140; int newIndex = 3 * k + j; 

然后你必须把它放在items数组中的那个索引处。

 [items insertObject:button atIndex:newIndex]; 

然后你应该调用你提供的代码重新定位button。

 for (int i = 0; i < items.count; i++) { UIButton *button = (UIButton *)[items objectAtIndex:i]; [UIView animateWithDuration:0.5 animations:^{ button.frame = CGRectMake(25+(i%3)*95, 35+(i/3)*140, 100, 100); }]; }