iphone uitable grid view - 拖放单元格内容

时间:2011-12-22 08:58:43

标签: iphone objective-c ios uitableview

这里我的要求是将一个单元格内容(即像uiimageview或uiview,uibutton any)拖到另一个单元格中。

基本上,tableview应该是网格结构。

一个简单的例子就是桌子应该像苹果的书架一样,它应该是可拖动的,就像把书拖放到不同的单元格一样。

任何人都可以帮助我实现它,任何想法和建议都会非常有用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

从附加到您要移动的视图的UIGestureRecognisers开始。具体来说是UIPanGestureRecogniser。像这样:

UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
panGestureRecognizer.maximumNumberOfTouches = 1;
panGestureRecognizer.delegate = self;
[yourView addGestureRecognizer:panGestureRecognizer];
[panGestureRecognizer release];

...

-(void) handlePan:(UIPanGestureRecognizer *) panGesture {
switch (panGesture.state) { 
    case UIGestureRecognizerStateBegan:
        break;
    case UIGestureRecognizerStateChanged:
            UIView *view = panGesture.view;
            CGPoint translation = [panGesture translationInView:view];
            [view setCenter:CGPointMake(view.center.x + translation.x, view.center.y + translation.y)];
            [panGesture setTranslation:CGPointZero inView:view];
        break;
    case UIGestureRecognizerStateEnded: 
        break;
    default:
        break;
}

}

基本上,平移手势有一个位置并跟踪移动,然后将其传递到UIView移动它的UIView的中心属性。

您可以将特定帧定义为丢弃点,如果手势在某些点结束,则会将UIGestureRecognizerStateEnded设置为最近的单元格({{1}})。