如何解决从UITableView拖动按钮
| 我有一个由自定义单元格组成的TableView。该单元格包含一个标签和一个按钮。现在,我将panGestureRecognizer添加到了单元格中的按钮上。我的问题是,当我尝试开始移动/拖动按钮时,该按钮正确移动,但是不幸的是,该按钮隐藏在TableView后面。我要如何使其领先于它。自定义单元是通过编程创建的,TableView也是如此。我的手势处理方法如下:
-(void)panPiece:(UIPanGestureRecognizer *)gestureRecognizer withEvent:(id) event
{
UIView *piece = [gestureRecognizer view];
[self adjustAnchorPointForGestureRecognizer:gestureRecognizer];
//*******************Dragging Ended*************************************
if([gestureRecognizer state]==UIGestureRecognizerStateEnded)
{
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
}
//*******************Dragging Started andchanged*************************************
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] ==UIGestureRecognizerStateChanged)
{
CGPoint translation = [gestureRecognizer translationInView:[piece superview]];
[piece setCenter:CGPointMake([piece center].x + translation.x,[piece center].y + translation.y)];
[gestureRecognizer setTranslation:CGPointZero inView:[piece superview]];
CGPoint moveLocation=[gestureRecognizer locationInView:piece];
NSIndexPath *indexPath=[tableView indexPathForRowAtPoint:moveLocation];
}
-(void)adjustAnchorPointForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
如果(gestureRecognizer.state == UIGestureRecognizerStateBegan ||(gestureRecognizer.state == UIGestureRecognizerStateChanged))
{
UIView * piece = gestureRecognizer.view;
CGPoint locationInView = [gestureRecognizer locationInView:piece];
CGPoint locationInSuperview = [手势识别器locationInView:piece.superview];
piece.layer.anchorPoint = CGPointMake(locationInView.x / piece.bounds.size.width,locationInView.y / piece.bounds.size.height);
piece.center = locationInSuperview;
}
}
该代码已根据此处的苹果代码建模
解决方法
这里是解决方案:将UIImageView从UIscrollView拖动到另一个视图
希望这可以帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。