我有一个UIView,它充当小部件的容器(UIViewController子类)。我能够将简单的UIButtons添加到UIView容器并使拖放功能正常工作,但是当我尝试从添加到UIView容器的Widget拖放UIButton时,我遇到了问题。当我尝试与按钮交互时,除了默认的触摸行为之外没有任何其他事情发生。
我是否应该在这种情况下使用委托,告诉我的Widget按钮,UIView容器将是处理拖放的容器?
我正在容器的ViewController中添加小部件,其中包含以下内容:
// Widget is a UIViewController subclass, WidgetTestViewController is a Widget subclass
Widget *testWidget = [[WidgetTestViewController alloc] initWithNibName:@"WidgetTest" bundle:nil];
[testWidget.widgetButton addTarget:self action:@selector(widgetDrag:forEvent:) forControlEvents:UIControlEventTouchDragInside];
[containerView addSubview:testWidget.view];
testWidget.view.frame = frame;
我正在通过此函数处理容器的ViewController中的拖动:
- (IBAction)widgetDrag:(id)sender forEvent:(UIEvent *)event {
CGPoint point = [[[event allTouches] anyObject] locationInView:containerView];
UIControl *control = sender;
control.center = point;
}