Tag: 核心animation

UIViewanimation子视图

我的目标是animation我的用户界面,我正在使用UIViewanimation。 问题是我需要一次一个以上的animation,但显然我一次只能执行一个UIViewanimation。 以前我曾经问过关于这个主题的问题( 多个UIViewanimation ),并且所有的响应者都说我必须用animationDidStop这样的方法来设置一个委托给animationDidStop:performSelector:但是我想知道是否我可以添加子视图到主视图并在每个子视图上同时执行animation。 此外,我无法执行背靠背animation,我想也许我可以执行一个animationview1,然后view2没有委托。 例如: //Header @property (nonatomic, strong) UIView *view1; @property (nonatomic, retain) UIView *view2; //Implementation @synthesize view1; @synthesize view2; //ViewDidLoad view1 = [[UIView alloc]initWithFrame:CGRectMake(0,0,480,640)]; view2 = [[UIView alloc]initWithFrame:CGRectMake(0,0,480,640)]; view1.backgroundColor = [UIColor clearColor]; view2.backgroundColor = [UIColor clearColor]; [performAnimationsOn View1]; //I don't know the code I would put here because the code //I […]

(Swift)如何(animation)显示/隐藏单元格基于UITextfieldinput通过重新加载UITableView?

我是一个开始的iOS开发人员,我一直在一个问题上陷入了一段时间。 背景:我有一个单一的视图控制器与tableview。 它拥有4个dynamic的原型单元:原型单元1有一个UITextField和一对标签,原型单元2有一个图像,原型单元3和4只有一个标签。 (注意:原型单元格4是基于对象中的一个数组,并且可以有一个或多个单元格) 在打开屏幕时,只有具有UITextField的第一个单元应该是可见的。 当用户在这个UITextField中input一个数字(最多3位数字)时,必须比较数字以检查它是否是对象数组中的现有数字。 如果这个数字certificate是正确的,则有两件事情必须发生: 第一个单元格中的标签将需要更改布局(颜色,字体,大小等)。 第一个单元格更改rowHeight。 其他3个单元将不得不出现并显示与数字对应的数据。 如果编号错误,则不会出现额外的单元格,并且第一个单元格会更新以告知用户它是不正确的。 问题:根据第一个单元格中的numberinput,我正在animation3个单元格出现和消失的方式。 更具体的方法“toggleCellsVisibility”以及它如何与细胞的创build相关联。 我尝试了多种组合:beginUpdates(),endUpdates(),reloadData(),reloadRowsAtIndexPath(),DispatchQueue.main.async {}和UIView.Animate()。 但是我的代码工作的唯一方法是如果我实现下面的toggleCellsVisibility方法,它不给我任何animation选项。 我似乎在创build和重新加载数据方面做了一些错误。 我认为这与在加载屏幕时使用全局variablesindexOfObject和tempObject有关,它们保存虚拟数据,然后在给出正确数字时显示和覆盖实际数据。 总结:当我在第一个单元格中input正确的数字时,是否可以以某种方式插入/创build3个单元格,同时使用这个特定的设置来animation这个变化? 额外:我可以通过不使用heightForRowAtIndexPath来显示/隐藏额外的单元格吗? 如果细胞可以自我大小,会更好。 我select并简化了相关的代码片段: 1)TableView类: class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, updateUITableView { var objects: [Object] = [ name: "test1", number: "test2", image: "imageName1", color: UIColor.black, array: ["test3", "test4"], [name: "test1", number: "test2", image: "imageName2", color: UIColor.white, array: […]

滑动列表项目更多的选项(颤振)

前些日子,我决定从Pinterestselect一个应用程序的Ui来练习用Flutter构build应用程序,但是我用滑动条卡住,在水平拖动上显示“更多”和“删除”button。 图片在右边 。 我没有足够的知识来使用与animation结合的手势来创build类似这样的animation。 这就是为什么我希望你们中的某个人能够像我一样为每个人做一个例子,我们可以理解如何在ListView.builder中实现这样的东西。 (资源) 来自macOS邮件应用程序的gif示例:

淡入淡出视图IN和OUT

大家,早安, 我完全同意这个问题。 我有3个UIWebViews,应该怎么开发是WebView1淡入(工程)淡出和WebView2淡入…… 我做到了这一点: CATransition *Animation = [CATransition animation]; [Animation setDuration:4.0]; [Animation setType:kCATransitionFade]; [Animation setSubtype:kCATransitionFade]; [Animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; transitioning = YES; if (transitioning) { [self.webView1.layer addAnimation:Animation forKey:nil]; self.webView1.hidden = YES; self.webView2.hidden = NO; 任何人都可以帮助我? 而当它在webView淡入淡出,即使背景颜色设置为其他颜色! 我不能影响颜色?

b2Bodyanimation?

我在我的游戏中使用了Box2D和Cocos2D。 我知道Cocos2D有一个名为CCMoveTo的animationAPI。 我想用b2Body在Box2D中做同样的事情。 我希望能够从最初的位置设置目的地点和animation时间。 有谁知道这是否可能? 我只是尽量保持这个尽可能简单。 我很乐意提供意见和build议! 谢谢! 编辑1 :好,所以我想让我的b2Bodys永久跟随我的CCSprite。 您向我展示的代码存在问题。 在我的.h我这样做: b2World *world; b2Body *body; 然后我修改了一下这个方法,现在看起来像这样: for (body = world->GetBodyList(); body != nil; body = body->GetNext()) { CCSprite *bodyNode = body->GetUserData(); if (bodyNode != nil) { // this transfers the body's position and rotation to the sprite bodyNode.position = [Helper toPixels:body->GetPosition()]; float angle = […]

如何将居中的方形设置为顶部

我有一个只有肖像的应用程序UIView 。 视图以垂直和水平方向 居中 放置 AutoLayout (使用故事板“手动”)。 width等于(main)view.width * 0.9 height是相同的宽度(这是一个正方形)的大小。 我想在这个UIView里面点击一个button,并且只是垂直地animation它,直到它到达屏幕的顶部边界(例如height * 0.9,10 pts,无论怎样)。 当我再次点击时,我想重新定位视图到原来的位置(居中,就像我第一次点击时那样)。 在过渡期间,广场不应该放倒。 在阅读了很多post后,我无法理解这样做的最好方法是什么(我主要是开发者说使用centerX旧技术应该避免,并且对某些版本的SO以奇怪的方式performance感到悲叹)。 我想我应该find一种方法来获得约束的当前“位置”,并将约束分配给“最终”位置,但是我无法做到这一点。 任何帮助表示赞赏

为什么顺序UIViewanimation同时显示?

我已经写了一些代码,依次在屏幕上移动一些对象。 当每个对象完成移动,下一个开始。 代码的结构与此类似: 模型: moveObject { // Code to move the object … [delegate moved:self]; } 代表: moved:(MyClass *)o { UIView* v = [self viewForObject:o]; [UIView animateWithDuration:1.0 animations:^{ [v setCenter: [model center]]; } completion:^(BOOL finished){ // Move object [model moveObject]; }]; } 虽然代码似乎运行良好,但屏幕上发生的事情是,animation被分组为批次:大量的一次都发生,然后另一个组都开始。 如果我在[model moveObject];行放置一个断点[model moveObject]; 然后在没有任何animation被显示在屏幕上的情况下被finished设置为true几次。 然后,偶尔, finished将被设置为false ,并且在我让debugging继续之后,所有的animation将在屏幕上执行。 编辑 : 但是,如果我更改代码,以便在moveObject被调用时偶尔不移动对象,而是返回没有动作的对象,并且等待用户移动对象(并且因此通过委托的moved:select器调用回代码),那么animation的短串顺序发生。 ie问题似乎只发生在代码处于无限循环时。 怎么了?

如果我们在iPhone SDK中使用图像,我们如何加速animation?

我有一系列的animation图像,比如图像1到1000。 我打算以统一的速度显示这些图像,以显示animation。 我想知道是否有什么方法可以加速animation? 我可以加快显示图像的速度吗? 请告诉我。

旋转后重新初始化UIView视图和子视图

我有一个小的问题,我的意见大小重置后旋转,我无法修复它。 我在我的视图“bottomContainerView”上放一个“滑动”动作,根据方向大小不同! 这里是我的新代码: -(void)swipeToggle:(UISwipeGestureRecognizer *)sender { if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) { if (sender.direction == UISwipeGestureRecognizerDirectionUp){ NSLog(@"if gesture up – LS"); [UIView animateWithDuration:0.5 delay:0.1 options:UIViewAnimationOptionCurveEaseInOut animations:^{ topContainerView.frame = CGRectMake(0.0, -160.0, 480.0, 244.0); bottomContainerView.frame = CGRectMake(0.0, 0.0, 480.0, 300.0);} completion:^(BOOL finished){ NSLog(@"%f,%f",bottomContainerView.frame.size.width,bottomContainerView.frame.size.height); }]; } else if (sender.direction == UISwipeGestureRecognizerDirectionDown) […]

如何以编程方式为ios 9中的UIStackView的alignment属性设置animation效果

我想知道如何在水平UIStackView的alignment属性中将UIStackViewAlignmentCenter中的alignment属性更改为UIStackViewAlignmentTop,反之亦然,并且我想在视觉上同时反映此更改。 编辑: 我拥有的: 这是我的观点层次: 两个button名为b1和b2; b1有一个名为“changeAlignmentToTop”的动作,而b2有一个名为“changeAlignmentToCenter”的动作。 一个名为Pview的UIView框架(0,100,414,100)。 一个名为S1的水平UIStackView,其alignment属性设置为“center”。 这个堆栈视图已被固定到pView的边界。 一个名为S2的水平UIStackView,其alignment属性设置为“Fill”,里面有两个标签。 我想做的事: 当我触摸buttonb1时,我想将S1的alignment从“中心”更改为“顶部”,并且我想为该更改设置animation。 我试过了 – (void) changeAlignmentToTop { [UIView animationWithduration 0.3 animations : ^{ S1.alignment = UIStackViewAlignmentTop; // here I'd prove several options // option – 1 [S1 setNeedsDisplay]; [S1 layoutIfNeeded]; // option – 2 //[S1 setNeedsLayout]; //[S1 layoutIfNeeded]; // option – 3 //[S1 setNeedsDisplay]; //[pView […]