0

我有一些 UIButtons 的值。我通过以下代码动态创建的每个按钮:

-(void)AddNewTable: (NSString *) tablePic: (NSString *) addedType {

   CreatedTable *ct = [[CreatedTable alloc] init];
   CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
   NSString * uuidString = (__bridge NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
   CFRelease(newUniqueId);
   UIImage *tableImage = [UIImage imageNamed: tablePic];
   CGRect frameBtn = CGRectMake(160.0f, 160.0f, tableImage.size.width, tableImage.size.height);

   UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
   [button setBackgroundImage: tableImage forState:UIControlStateNormal];
   [button setFrame:frameBtn];
   [button addTarget:self action:@selector (draggedOut:withEvent::) forControlEvents:UIControlEventTouchDragInside];
   [button setTitle: [NSString stringWithFormat:@"%d", tables.count] forState: UIControlStateNormal];

   ct.Id = [uuidString lowercaseString];
   ct.posX = 160;
   ct.posY = 160;
   ct.isActive = true;
   ct.Index = button.titleLabel.text;
   ct.picture = [NSString stringWithFormat:@"tables/%@", tablePic];
   ct.type = addedType;
   ct.angle = 0.0;
   [tables addObject:ct];

  [hallView addSubview:button];
}

CreatedTable - 是带有创建按钮的字符串参数的 NSObject。

如您所见,我正在为每个创建的按钮添加选择器。我可以通过这个选择器移动每个按钮。这是它的代码:

- (IBAction)draggedOut: (id)sender withEvent: (UIEvent *) event: (NSSet *)touches {
   CreatedTable = [tables objectAtIndex: selected.[titleLabel.text intValue]]
   UIButton *selected = (UIButton *)sender;
   selected.center = [[[event allTouches] anyObject] locationInView:hallView];

   ct.posX = selected.center.x;
   ct.posY = selected.center.y; // Here I'm changing params in ct.
} 

现在我需要实现多选(通过点击按钮来选择一些按钮的值,以使某个组成为王者),然后我需要像一个对象一样移动这个组(所有选定的按钮)。

任何建议如何实现它?

4

2 回答 2

0

您可以为 AddNewTable 中的每个按钮设置不同的标签,如下所示:

[按钮设置标签:];

然后在draggedOut中,您可以通过以下方式找到它:

[发件人标签]

于 2013-05-10T07:27:43.543 回答
0

当用户一一选择多个按钮时,通过更改背景图像将它们标记为所有选中的按钮。现在,当用户开始拖动任何一个选定按钮时,创建所有更大的视图(具有清晰的背景颜色)并添加所有选定按钮的副本(新按钮看起来像选定的按钮)并将它们添加到更大的视图中。现在更改原始按钮的位置(按钮被拖动),更改更大视图的位置。它看起来和感觉就像所有选定的按钮都被拖动了。此外,一旦停止拖动更大的视图,就从主视图中删除所有原始选定的按钮。

希望它会帮助你。

于 2013-05-10T07:58:46.227 回答