Ios6 在scrollview';s子视图

Ios6 在scrollview';s子视图,ios6,scrollview,Ios6,Scrollview,请帮帮我,我正面临非常严峻的形势, 使用将视图拖动到scrollView的子视图中 a:)我有一个scrollview(让我们命名为a),在这个视图中覆盖了整个scrollview(让我们称为B),现在'B'包含225个子视图(15*15)(称为目标视图) b:)我在A的正下方有另一个视图,有7个子视图(称为tiles),每个tiles都位于一个视图内(称为tilectaner view) 有问题吗? 1.当我在B的子视图(目标视图)中拖动磁贴时,它将消失 要求。 将平铺视图从平铺容器放置到sc

请帮帮我,我正面临非常严峻的形势, 使用将视图拖动到scrollView的子视图中

a:)我有一个scrollview(让我们命名为a),在这个视图中覆盖了整个scrollview(让我们称为B),现在'B'包含225个子视图(15*15)(称为目标视图)

b:)我在A的正下方有另一个视图,有7个子视图(称为tiles),每个tiles都位于一个视图内(称为tilectaner view

有问题吗? 1.当我在B的子视图(目标视图)中拖动磁贴时,它将消失

要求。
将平铺视图
从平铺容器放置到scrollview的目标视图,或平铺与目标相交的B的子视图。

在此方法中删除[tileView removeFromSuperview];因为它实际上删除了tileView

-(void)placeTile:(TileView*)tileView atTarget:(TargetView*)targetView {
[UIView animateWithDuration:0.35 delay:0.00 options:UIViewAnimationOptionCurveEaseOut animations:^{
}

谢谢。

//根据我的评论构建

在c部分中,有tileView.frame=CGRectMake(targetView.frame.origin.x,targetView.frame.origin.y,20,20);我会认为这是因为你在做targetView.frame.origin.x,targetView.frame.origin.y,它只是把它从屏幕上拖了下来。我认为它应该是0,0作为你的添加来查看你的坐标

 -(void)placeTile:(TileView*)tileView atTarget:(TargetView*)targetView {
           [UIView animateWithDuration:0.35 delay:0.00 options:UIViewAnimationOptionCurveEaseOut animations:^{

                 [tileView removeFromSuperview];
                 tileView.frame=CGRectMake(targetView.frame.origin.x, targetView.frame.origin.y, 20, 20);
                 [targetView addSubview:tileView];
                 NSLog(@"%f,%f,%f,%f",tileView.frame.origin.x,tileView.frame.origin.y,tileView.frame.size.width,tileView.frame.size.height);
                 [tileView bringSubviewToFront:targetView];

             }
             completion:^(BOOL finished){
            }];
请参见您将tileview设置为与targetView具有相同的x和y,但添加到目标视图中的时间相同。我想你应该把它放在0,0,或者转换点

       [UIView animateWithDuration:0.35 delay:0.00 options:UIViewAnimationOptionCurveEaseOut
       animations:^{

             tileView.frame=CGRectMake(0, 0, 20, 20);
             [targetView addSubview:tileView];
         }
         completion:^(BOOL finished){
        }];
编辑:

iMobile提出了一个很好的观点,苹果的文档说,如果在添加视图之前已经有一个超级视图,addSubview会删除该视图

  "Views can have only one superview. If view already has a superview and that view is
   not the receiver, this method removes the previous superview before making the 
   receiver its new superview."

在c部分中,有tileView.frame=CGRectMake(targetView.frame.origin.x,targetView.frame.origin.y,20,20);我会认为这是因为你在做targetView.frame.origin.x,targetView.frame.origin.y,它只是把它从屏幕上拖了下来。我认为它应该是0,0,因为添加视图可以从中获取坐标。@Boo:添加ileView.frame=CGRectMake(0,0,20,20)后,它不起作用;然后将“子视图”带到前面,检查[A子视图]与任何子视图相交时的相交点,然后将“拖动视图”添加为相交视图的子视图。上述概念适用于我。但在缩放scrollview时,我无法放置拖动的视图。如果您已经这样做了,您愿意帮助我吗?我评论了这些行,但仍然得到了您删除的相同问题[tileView removeFromSuperview];但是您没有重新初始化它,所以它可能是零。请检查它。嗯,不幸的是,在调试说明中,可能尝试targetView.clipsToBounds=NO;让你的tileView呈现一些明亮的颜色。@iOSRocks我也会删除[tileView bringSubviewToFront:targetView];,看起来是错误的。不,不行。你能给出实现这种现象的想法吗。我有同样的问题,任何人都可以帮助我。?