1

我有一个 UIView 作为小部件的容器(UIViewController 子类)。我能够将简单的 UIButtons 添加到 UIView 容器并让拖放功能正常工作,但是当我尝试从添加到 UIView 容器的 Widget 拖放 UIButton 时遇到了问题。当我尝试与按钮交互时,除了默认的触摸行为之外什么都没有发生。

在这种情况下我是否应该使用委托,告诉我的小部件按钮 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;
}
4

0 回答 0