Tag: uiviewanimation

自定义注释图像只在程序开始时旋转(Swift-iOS)

请帮助一个初学者的iOS开发者在这里! :)所以,我有一个计时器,定期从一个XML表提供公交车的实时位置的XML表获取公交车的经纬度。 我能够设置parsing器,为公交车运动设置animation并为公交车设置自定义(箭头)图像。 然而,问题是,每当我得到新的纬度和经度值时,我都无法旋转公交标注。 busAnnotation仅在程序启动busAnnotation旋转,但不是每次总线方向都更新。 下面是我的xml parser函数,它每次更改位置时都会计算busDirection 。 busDirection的值随着位置变化而正确改变,但是由于某些原因,定时器继续运行,它不适用于旋转。 注释的移动也是非常生动的,除了程序启动之外,它不会旋转。 // Some constants var oldLatitude: Double? = 44.97234 var oldLongitude: Double? = -93.2446329 var busDirection: CLLocationDirection() func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: NSDictionary!) { if (elementName == "vehicle") { var latitude = attributeDict["lat"]?.doubleValue // Get latitude of bus […]

如何完成两个UIViews之间的“90%幻灯片”

我有一个特定的场景,我试图效仿,对于Cocoa Touch来说是相当新的,我不确定完成它的最佳方式。 请原谅我缺乏的战术知识 希望有一些清楚的说明会有所帮助。 我想仿效的是: 我正在看的应用程序(尤其是) Beat 。 下面是他们的UIViews的一个例子 – 特别是,注意底部设置的齿轮图标。 当这个齿轮被触摸或刷新时,会发生两个主要的UIView变化: 原来的UIView在屏幕上滑动了90%左右( 关键在于它不会一直向上滑动)。 一个新的UIView滑了起来,以填补这个新腾出的90%的空间。 这是我想要完成的基本function。 实现想法#1:单个UIViewController瓦特/多个UIViews 起初,我认为有一个UIViewControllerpipe理“主”和“设置”的意见。 在这种情况下,以适当的方式转换这些观点将是相当简单的事情。 这就是说,这对我来说似乎有点混乱。 根据我的两套function的强大程度,这是一个重载单个UIViewController的方法。 你可能会告诉我,这没关系,但蝙蝠,似乎太多了。 实现想法#2:自定义容器ViewController中的多个UIViewController 这是我目前正在走下的路线。 它将两个离散的function集合分离成单独的UIViewController(包含在Container ViewController中),并通过以下方式在两者之间转换: – (void)flipFromViewController:(UIViewController *)fromController toViewController:(UIViewController *)toController { CGFloat width = self.view.frame.size.width; CGFloat height = self.view.frame.size.height; fromController.view.frame = CGRectMake(0.0f, 0.0f, width, height); toController.view.frame = CGRectMake(0.0f, height, width, height); [self addChildViewController:toController]; [fromController […]

如何使图像旋转(animation)

我有一个广场的形象,我知道如何让它旋转。 animation旋转…然后停下来…然后再旋转…等等。 我只是一个基本的旋转,但不像上面的GIF: extension UIView { func rotate360Degrees(duration: CFTimeInterval = 3) { let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation") rotateAnimation.fromValue = 0.0 rotateAnimation.toValue = CGFloat(M_PI * 2) rotateAnimation.isRemovedOnCompletion = false rotateAnimation.duration = duration rotateAnimation.repeatCount=Float.infinity self.layer.add(rotateAnimation, forKey: nil) } } 任何想法如何做到这一点?

通过滑动滑出导航UIView覆盖另一个UIView

在我对这种导航技术的研究中,我发现Nick Harris的这个post是一个很好的开始。 但是,我想要的是与此稍有不同。 你可以把它想象成iOS的Notification Center当你只需要从顶部滑动显示view ,只需滑动回来隐藏它。 在我的情况下,我希望通过向左滑动手势来显示来自屏幕右侧的隐藏UIView ,并通过相同的手势(这次是右侧)再次隐藏它。 我设法得到我以前的post显示/隐藏UIView的解决scheme。 我想补充的一件事是挥动手势。 我不想调整我的应用程序委托来做到这一点,如尼克·哈里斯所做的那样。 所以如果任何人有任何想法/代码样本我怎么能做到这一点,我会很感激。 一些启发 :)

非UIViewanimation:animation有时不玩,UIViewanimation:工作正常

有时当我在设备上运行我的应用时,我估计大概有20%的时间,animation如: [tableView setEditing:NO animated:YES]; [tableView setContentOffset:rect animated:YES]; 和 [viewController0 pushViewController:viewController1 animated:YES]; 不要animation,但立即改变。 但animation如: [UIView animateWithDuration:0.2 animations:^{ // do something } completion:^(BOOL finished) { // do something else }]; 工作正常。 这发生在别人身上吗? 不知道是什么原因造成的,它只发生在这一个应用程序,从来没有发生过任何其他应用程序,它只发生有时。 任何帮助赞赏。 编辑: 只是想澄清。 我用“animateWithDuration”创build的animation效果很好。 有时 ,cocoa的animation在整个应用程序运行时都不起作用。

用户交互animationUIButton

我试图在Xcode 4.2中针对iPhone做一个小应用程序。 我想要的是一个UIButton ,在屏幕上进行animation处理,当你按下它的时候,你把它设置为0.我从UIView类中find了一个能够处理用户交互的方法,来到这个代码: [UIView animateWithDuration:3.0 delay:0 options: UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionAllowAnimatedContent animations: ^{ CGRect myRect = enemy1.frame; myRect.origin.y = 300; myButton.frame = myRect; } completion:nil]; 现在,这样做的animation正确,但事情是,它立即将origin.y设置为300,这意味着我不能按下button“,因为它下滑”。 我只能在origin.y位置上按下它,即使它还没有完成animation,我仍然可以按下它。

为什么在自动布局CGAffineTransformRotate将转移animation视图?

我想旋转一个imageView使用下面的代码: [UIView animateWithDuration:.25 animations:^{ self.imageView.transform = CGAffineTransformRotate(self.plusView.transform, M_PI_4); }]; 有线的事情是:如果我运行这个代码没有自动布局,每一件事情都很好。 但是当使用自动布局时,图像视图会在旋转之前移动一个较小的像素,为什么?

animationUITextField时出现奇怪的行为

我试图animation一个UITextField但我已经被一个恼人的和奇怪的问题抓住。 我的animation有以下顺序: 在第一种状态下,应用程序具有UITextField ,相机UIButton和取消UIButton后,相机button没有显示,因为它已被定位超出了应用程序的限制。 其实我的应用程序有320的宽度和取消button原点是(350,7) 在第二种状态下,当用户触摸UITextField ,相机buttonalpha通道被设置为0,并且取消button的原点被设置为(247,7)。 用户触摸键盘上的返回button或取消button后,最终状态与第一个状态相同。 在处理过程中,X轴上的UITextField宽度和取消button原点是animation的。 我的代码是: – (void)textFieldDidBeginEditing:(UITextField *)textField { barcodeSearchButton.userInteractionEnabled = NO; cancelButton.userInteractionEnabled = NO; CGFloat cancelButtonXOffset = CGRectGetMaxX(barcodeSearchButton.frame) – cancelButton.frame.size.width; CGFloat searchFieldWidth = searchField.frame.size.width – cancelButton.frame.size.width + barcodeSearchButton.frame.size.width; [UIView animateWithDuration:0.3 animations:^{ searchField.frame = CGRectMake(searchField.frame.origin.x, searchField.frame.origin.y, searchFieldWidth, searchField.frame.size.height); cancelButton.alpha = 1.0; cancelButton.frame = CGRectMake(cancelButtonXOffset, cancelButton.frame.origin.y, cancelButton.frame.size.width,cancelButton.frame.size.height); barcodeSearchButton.alpha = 0.0; } […]

多个UIViewanimation

我正试图一个接一个地执行多个UIViewanimation。 但是,我听说,一个接一个地执行多个UIViewanimation是不好的做法,而应该使用Core Animation。 我试过这个代码: //First Animation [UIView beginAnimations:@"animation1" context:nil]; [UIView setAnimationDuration:2]; nwView.backgroundColor = [UIColor redColor]; nwView.frame = CGRectMake(CGRectGetMidX(screenSize), CGRectGetMinY(screenSize), width, height); nwView.transform = CGAffineTransformMakeRotation(45.0f); [UIView commitAnimations]; //Second Animation [UIView beginAnimations:@"second animation" context:nil]; [UIView setAnimationDuration:2]; nwView.transform = CGAffineTransformMakeScale(0.5, 0.33); nwView.backgroundColor = [UIColor purpleColor]; [UIView commitAnimations]; 但它只做第二个animation。 我知道这个问题类似于UIView的两个animation并存 ,但是它有一个稍微不同的上下文。

iOS蜷缩animation以删除uiimageview

我正在寻找从我的应用程序中删除一个图像蜷缩起来的animation。 我有 [UIView transitionWithView:sender.view.superview duration:1.5 options:UIViewAnimationOptionTransitionCurlUp animations:^ { [sender.view removeFromSuperview]; } completion:nil]; 但这卷起整个页面,看起来好像有一个单独的页面下方没有图像。 而不是一个“过渡”到一个新的页面是可能curl的图像离开页面,而不会影响页面的其余部分? 我是否需要在“容器视图”中包装图像视图并将视图更改为该视图?