如何将对象移动到排列?
大家
我有一个问题,我想实现一个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); }]; }