Tag: 核心animation

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; […]

如何在Scroll上设置UICollectionViewCell的大小,使其中间最大?

我有一个UICollectionView显示几行与一个全宽列(看起来像一个UITableView) 我想达到的是类似于这样的: …中间的细胞有更高的高度。 当用户向上和向下滚动时,中间单元格之前和之后的单元格animation回到给定单元格的默认高度。 有人可以概述我应该如何解决这个问题?

遇到UIView,animateWithDuration并完成

我不知道这段代码有什么问题。 [UIView animateWithDuration:10.0f delay:0.0f options:UIViewAnimationOptionTransitionNone animations:^{ CGAffineTransform transform = CGAffineTransformMakeScale(0.1, 0.1); self.transform = transform; } completion:^(BOOL finished) { if (finished) { NSLog(@"Animation finished"); [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"NSShowHomeScreen" object:nil ]; } }]; 即使持续10秒,animation开始时我立即收到控制台消息“animation完成”。 我想缩小/缩放我的第一个UIView,然后我想显示另一个UIView。 但是现在第二个UIView在收缩结束之前显示得很好。 任何帮助将不胜感激。 谢谢

animationCALayer背景颜色和更新模型值

我想为我的UIView(在tintColorDidChange )中的一个子图层的backgroundColor改变animation。 我需要从图层的当前背景颜色animation多次到新的色调颜色(每次不同的色调),所以需要更新backgroundColor的模型值(我不能在animation上使用removedOnCompletion = false )。 使用CABasicAnimation我有颜色更改animation工作正常,如果我不更新模型值(但当然animation完成后颜色重置)。 当我尝试更新模型值时,颜色变化立即发生,animation丢失。 我试图禁用隐式animation并使用CATransation更新模型值,但animation仍然丢失。 我如何更新backgroundColor模型的值,并保持我的淡出animation工作? override func tintColorDidChange() { super.tintColorDidChange() let colourAnim = CABasicAnimation(keyPath: "backgroundColor") colourAnim.toValue = self.tintColor.CGColor colourAnim.duration = 1.0 self.spinnerLayer?.addAnimation(colourAnim, forKey: "colourAnimation") CATransaction.begin() CATransaction.setDisableActions(true) self.spinnerLayer?.backgroundColor = self.tintColor.CGColor CATransaction.commit() }

UiView.animateWithDuration不能animationSwift

我正在尝试使用下面的代码来animation显示/隐藏search栏(search栏应该从左边开始,并在1-2秒内向右扩展)。 但是,无论我投入了多less时间,它都不会立即显示animation和search条。 我注意到下面 持续时间不受尊重 甚至不延迟被尊重 animation没有发生。 组件立即显示 func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { //code to get selected value… //Hide the collection view and show search bar UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: { self.searchBar.hidden = false self.searchBar.frame = CGRectMake(0, 0, 300, 44) //This doesn't work either }, completion: { (finished: Bool) in return true […]

用drawRect UIViewanimationbackgroundColor:

我有一个观点,能够自我反思。 这实际上是UICollectionView一个子类,但我只是在与UIView特定的东西挣扎; backgroundColor。 我只是添加了一个UIPanGestureRecognizer ,保存起始点在UIGestureRecognizerStateBegan和终点在UIGestureRecognizerStateChanged 。 然后我使用-drawRect:方法来绘制实际的path: – (void)awakeFromNib { UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGesture:)]; [self addGestureRecognizer:pan]; } – (void)panGesture:(UIPanGestureRecognizer *)panRecon { if([panRecon state] == UIGestureRecognizerBegan) { startPoint = [panRecon locationInView:self]; } else if([panRecon state] == UIGestureRecognizerChanged) { endPoint = [panRecon locationInView:self]; [self setNeedsDisplay]; } else if([panRecon state] == UIGestureRecognizerEnded /* || failed […]

animationuibutton快速应用图像

我想要通过轮stream改变button上的两个图像来应用animation效果。 我已经应用了以下代码,但无法看到animation效果。 我已经正确应用了IBOutlets。 var image1:UIImage = UIImage(named: "img_mic_off")! var image2:UIImage = UIImage(named: "img_mic_on")! btnRecord.imageView?.animationImages = [image1,image1] btnRecord.imageView?.animationDuration = 1.0 btnRecord.imageView!.startAnimating() 请帮我解决为什么它不能使用这个给定的代码的问题。 提前致谢。

animationUICollectionViewCell折叠

我试图在用户点击它时animationUICollectionViewCell的高度。 基本function按预期工作。 它挖掘和扩大点击时,但我的UICollectionViewCells自定义,并有一个headerView和一个contentView,所以当我animation的高度它折叠contentView为0,只有头是可见的,反之亦然扩大。 问题是,contentView只是在那里/消失,并不是作为单元格(它的超级视图本身)的animation。 查看截图以获得更好的理解: 点击标题(红色)时的animation。 contentView是即时可见的,但单元格在它后面有animation: animation完成后,一切都很好: 按照预期再次敲击单元格,但contentView(蓝色)瞬间隐藏: 通过在collectionViewLayout上执行批量更新来完成实现。 我认为它只是一个小旗子,但我现在正在寻找一段时间。 编辑:禁用自定义UICollectionViewCell中的自动布局后,它的工作完美,但这似乎更像是一个解决方法给我。 所以我会打开这个问题。

带有透明UIImageView的页面curlanimation(iOS)

我有一个丝带(书签),我想蜷缩起来,离开屏幕。 function区的底部有一个V形切口,这是一个透明的部分 – 一个带有透明png的UIImageView。 当我在function区上执行curl时,底层阴影代表整个视图(这在技术上是正方形的)。 我试图让这个看起来尽可能真实,所以如果有人能指出我的方向是正确的,那将是有帮助的。 我已经尝试 – 掩盖视图 – 调整开源页面curl框架 – 在页面curl期间replaceviewAtIndex – UIViewanimation 但他们都造成了一个正方形的影子。 目前为止我可以提供的最好的体验是一个简单的UIViewanimation,而淡出的: [UIView transitionWithView:_ribbonButton duration:0.5f options:UIViewAnimationOptionTransitionCurlUp animations:^{ [_ribbonButton setAlpha:0.0f]; } completion:^(BOOL completed){ [self animationCompleted:completed]; }]; 这是一个截图: http : //livevision.us/wordpress/?attachment_id=60

如何在单个animation中缩放和旋转视图

我试图通过从屏幕的中心出现一个视图,同时将其增大到全尺寸,同时以3D方式围绕X轴旋转。 当我创build视图时,我会对其应用一个转换,以确保它缩小并旋转,从而开始(实际上不可见),然后尝试使用CATransform3D,如下所示: CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"]; CATransform3D transform = CATransform3DRotate(view.layer.transform, M_PI, 1.0, 0, 0); transform = CATransform3DScale(transform, 1000, 1000, 1000); transform.m34 = 1.0 / 10000; [anim setToValue:[NSValue valueWithCATransform3D:transform]]; [anim setDuration:0.75f]; anim.removedOnCompletion = NO; anim.delegate = self; [view.layer addAnimation:anim forKey:@"grow"]; 然而这个animation不会改变图层的实际转换,所以我也这样做: – (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag { view.layer.transform = CATransform3DIdentity; [view.layer removeAllAnimations]; } 一旦animation停止,就设置变换。 但是,这有时会导致animation结束时出现明显的闪烁。 我相信这是因为animation将原始变换放回到animation阶段的末尾,并且在animationDidStop例程被调用之前发生。 […]