我想有一个视图,其中有车辆行驶,用户也可以拖放.你认为这样做的最好的大规模战略是什么?最好是从代表车辆的视图中获取touch 事件,还是从更大的视图中获取?您是否对拖放使用过的简单范例感到满意?不同策略的缺点是什么?
我想有一个视图,其中有车辆行驶,用户也可以拖放.你认为这样做的最好的大规模战略是什么?最好是从代表车辆的视图中获取touch 事件,还是从更大的视图中获取?您是否对拖放使用过的简单范例感到满意?不同策略的缺点是什么?
假设你有一个UIView
场景的背景图像和许多vehicles
,你可以将每辆新车定义为一个UIButton
(UIImageView可能也适用):
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(imageTouch:withEvent:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(imageMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside];
[button setImage:[UIImage imageNamed:@"vehicle.png"] forState:UIControlStateNormal];
[self.view addSubview:button];
然后,您可以通过响应UIControlEventTouchDragInside
事件,将车辆移动到任何地方,例如:
- (IBAction) imageMoved:(id) sender withEvent:(UIEvent *) event
{
CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];
UIControl *control = sender;
control.center = point;
}
与整体管理场景相比,单独的车辆处理自己的拖拽要容易得多.