Tag: uikitdynamic

碰撞不在物品之间工作

我在我的应用程序中使用UIDynamics。 我的应用程序有两个方块。 一个是固定的,另一个可以移动(通过应用平移手势)。 当我尝试碰撞他们时,他们不会碰撞。 委托方法永远不会被调用。 这里是我的代码,我希望有人能指出这个问题。 UIDynamicAnimator* animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; UICollisionBehavior* collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[self.square1, self.square2]]; collisionBehavior.translatesReferenceBoundsIntoBoundary = YES; UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [self.square1 addGestureRecognizer:pan]; [collisionBehavior setCollisionMode:UICollisionBehaviorModeEverything]; [animator addBehavior:collisionBehavior]; collisionBehavior.collisionDelegate = self;

UIKitdynamic:识别圆形形状和边界

我正在写一个应用程序,我使用UIKitdynamic来模拟不同圈子之间的相互作用。 我用下面的代码创build我的圈子: self = [super initWithFrame:CGRectMake(location.x – radius/2.0, location.y – radius/2, radius, radius)]; if (self) { [self.layer setCornerRadius: radius /2.0f]; self.clipsToBounds = YES; self.layer.masksToBounds = YES; self.backgroundColor = color; self.userInteractionEnabled = NO; } return self; 其中位置表示圆的期望位置,半径是其半径。 然后我将这些圈子添加到不同的UIBehaviours,做到: [_collision addItem:circle]; [_gravity addItem:circle]; [_itemBehaviour addItem:circle]; itemBaviour定义如下: _itemBehaviour = [[UIDynamicItemBehavior alloc] initWithItems:@[square]]; _itemBehaviour.elasticity = 1; _itemBehaviour.friction = 0; […]

摇一个UIView …但使用UIKitdynamic

有很多情况下,你需要“摇动”一个UIView。 (例如,“将小孩用户的注意力吸引到控件上”,“连接速度慢”,“用户input错误”等)。 使用UIKit Dynamics可以做到这一点吗? 所以你必须.. 采取的观点,说在0,0 添加一个spring的概念 给它一个微调,说到“左” 它应该在spring前后摆动,最终再次回到0,0 这可能吗? 我在苹果演示中找不到例子。 干杯 请注意,正如尼尔斯在下面巧妙地解释的那样,在这些情况下,spring并不一定是你想要的“物理感觉”:在其他情况下,它可能是完美的。 据我所知,iOS自己的应用程序中的所有物理(如消息等)现在使用UIKitdynamic,所以对我来说,值得处理“UIView弹簧弹跳”。 只是要清楚,当然你可以做一些“类似”,只是一个animation。 例… 但是现在,这与iOS的其他部分根本没有相同的“物理感觉”。 -(void)userInputErrorShake { [CATransaction begin]; CAKeyframeAnimation * anim = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; anim.values = @[ [NSValue valueWithCATransform3D: CATransform3DMakeTranslation(-4.0f, 0.0f, 0.0f) ], [NSValue valueWithCATransform3D: CATransform3DMakeTranslation(4.0f, 0.0f, 0.0f) ] ]; anim.autoreverses = YES; anim.repeatCount = 1.0f; anim.duration = 0.1f; [CATransaction setCompletionBlock:^{}]; [self.layer […]