【问题标题】:Drag and Drop Image from UITableviewCell to other View将图像从 UITableviewCell 拖放到其他视图
【发布时间】:2013-01-11 05:30:38
【问题描述】:

我正在开发一个 iPhone 应用程序,我需要从 UITableViewCell 拖动图像
并将其放在 tableview 之外的其他一些 UIView 中。

(图像视图添加为:[cell.contentView addSubview:imageView])。

请帮助我,任何有用的提示,示例代码?由于我将 UIImageView 添加到 UITableViewCell ,因此没有触发触摸事件委托。

【问题讨论】:

    标签: ios objective-c cocoa-touch drag-and-drop


    【解决方案1】:

    你不会在UIImageView 中得到太多事件,所以使用UIButton 并尝试这样的拖动:

    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];
    
    - (IBAction) imageMoved:(id) sender withEvent:(UIEvent *) event
    {
        CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];
        UIControl *control = sender;
        control.center = point;
    }
    

    当您的中心点与其他UIView 匹配时,使用[UIView adSubview:] 方法在UIView 中添加UIButton

    我已从Basic Drag and Drop in iOS 获取此代码

    看看:Drag an Image within the Bounds of Superview

    【讨论】:

    • 用 UIImageView 实现它这是一个简单的演示:mobiledevelopertips.com/graphics/…
    • 是的,它确实有助于移动按钮,但由于按钮位于 UITableViewCell 内,因此当将按钮拖到 tableview 之外时,按钮将位于其他视图/主视图的后面。问题是我们看不到tableview外按钮的拖动动作(隐藏在其他视图后面)。
    • 每次 UIButton 越过其当前父级的边界时,您必须更改父级视图。或者你可以做的是当 UIButton 开始拖动时将它移动到主父 UIView (self.view) 并将它带到前面。
    • 我已经完成了 [[button superview] bringSubviewToFront: button];将按钮带到 UItableView 的顶部,但是您能否提供一行代码来将该按钮带到主视图(窗口)的顶部,因为 [self.view bringSubviewToFront:button];在 mycase 中不起作用,按钮仍在主视图后面。
    • 如果我们要添加为 [self.view addsubview:imgbtn] ,那么按钮将出现在视图的其他位置,然后在其原始位置。例如:单元格中的按钮有一个原点说 (0,0) ,如果我们将该按钮添加到 self.view 那么该按钮将出现在屏幕的左上角!!
    猜你喜欢
    • 1970-01-01
    • 2014-02-25
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多