如何在proe动画中拖动组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在proe动画中拖动组件相关的知识,希望对你有一定的参考价值。

  在该组件的最上方按下左键,拖动到想要的地方。
  1、在操作区松手会变成单独的窗口。
  2、在边框处松手会吸附到边框。
  Pro/Engineer操作软件是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件。Pro/Engineer软件以参数化著称,是参数化技术的最早应用者,在目前的三维造型软件领域中占有着重要地位。Pro/Engineer作为当今世界机械CAD/CAE/CAM领域的新标准而得到业界的认可和推广,是现今主流的CAD/CAM/CAE软件之一,特别是在国内产品设计领域占据重要位置。
  Pro/Engineer和WildFire是PTC官方使用的软件名称,但在中国用户所使用的名称中,并存着多个说法,比如ProE、Pro/E、破衣、野火等等都是指Pro/Engineer软件,proe2001、proe2.0、proe3.0、proe4.0、proe5.0、creo1.0\creo2.0等等都是指软件的版本。
参考技术A 1,组件作为一个整体可动的话直接拖动;
2,组件里面有很多可以拖动的元件的话可以把能拖动的元件进行主体锁定,然后一起拖动;
3,可以直接在主体定义里面将组件定义为一个主体然后进行拖动。
参考技术B 先将要拖动的组件定义为一个主体,再使用拖动元件工具,拖动这个主体即可 参考技术C

在该组件的最上方按下左键,拖动到想要的地方。

    在操作区松手会变成单独的窗口。

    在边框处松手会吸附到边框。

参考技术D 小抓手在上面的一栏里

拖动时为 UIView 设置动画

【中文标题】拖动时为 UIView 设置动画【英文标题】:Animate UIView while being dragged 【发布时间】:2012-05-31 10:33:31 【问题描述】:

我正在尝试为 UIView 在用户开始拖动时展开动画,并在用户停止拖动时为其折叠动画。在 iOS5 中,这似乎可以工作,虽然并不完美 - 视图在展开时动画移动到当前手指位置(因此滞后),但在展开动画结束时工作正常。

在 iOS4 中,它只是被破坏了 - 视图以动画方式展开,但在动画完成之前根本不会用用户的手指移动。

我能做什么?

- (void)gestureRecognizerMoved:(id)sender

    [self.view bringSubviewToFront:[(UIPanGestureRecognizer*)sender view]];
    CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:self.view];
    NSLog(@"translated x %f y %f", translatedPoint.x, translatedPoint.y);

    if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan)
        
        firstX = [sender view].center.x;
        firstY = [sender view].center.y;

        NSLog(@"first x %f y %f", firstX, firstY);
    

    translatedPoint = CGPointMake([sender view].center.x, firstY+translatedPoint.y);
    [[sender view] setCenter:translatedPoint];

    if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan)
    
        [UIView animateWithDuration:0.8f animations:^(void)
         
             CGRect frame = [sender view].frame;
             frame.size.width += 200.0f;
             [sender view].frame = frame;
         ];
    

    if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded)
    
        [UIView animateWithDuration:0.8f animations:^(void)
         
             CGRect frame = [sender view].frame;
             frame.size.width -= 200.0f;
             [sender view].frame = frame;
         ];
    

编辑:使用 Core Graphics 仿射变换来调整视图大小(例如 CGAffineTransformMakeScale)而不是修改视图的框架摆脱了 iOS5 中的滞后,所以现在即使在动画期间它也会坚持用户的手指按压,而不是动画到新闻地点,完美!但是在 iOS4 中仍然遇到同样的问题。

【问题讨论】:

你试过 UIViewAnimationOptionAllowUserInteraction 作为动画选项吗? 这行得通,谢谢!如果是评论,有没有办法可以接受这个作为答案? 我把它作为答案发布了 【参考方案1】:

您可能应该在动画选项中包含UIViewAnimationOptionBeginFromCurrentState

编辑:

您应该使用UIViewAnimationOptionBeginFromCurrentState,因为您的手势可以在动画结束之前结束。

更改视图center 只是更改视图frame 的另一种方式。这两个属性更改相同的数据。如果您为 frame 大小设置动画,然后直接通过 center 更改帧(覆盖动画所做的),您将无法获得所需的内容。

我看到的最简单的解决方案是将您的视图放入透明容器中并更改容器的位置,同时视图仍然可以为其大小设置动画。

【讨论】:

试过了,没用。根据我的理解, UIViewAnimationOptionBeginFromCurrentState 将用于例如在动画已经被动画的视图时(所以它不会从它的实际位置开始第二个动画,但它是在第一个动画期间的插值位置)对吗?就我而言,我只做一个动画,同时手动移动帧中心。 抱歉,我没有注意到您直接更改了center。查看更新的答案。【参考方案2】:

尝试使用 UIViewAnimationOptionAllowUserInteraction 选项,它应该可以工作:)

【讨论】:

以上是关于如何在proe动画中拖动组件的主要内容,如果未能解决你的问题,请参考以下文章

java - 如何在java脚本或css中完成动画后使元素可拖动?

如何在恢复可拖动的 jQuery UI 时删除动画?

拖动 UIView 时如何实现流畅的动画

如何把proe的三维图像导入到Word文档中。

如何在android中实现swipe的手势功能及页面拖动动画

proe画螺纹孔在工程图中如何显示3/4圆周