ios – 如何在Xcode中激活UIView的宽度和高度?

ios – 如何在Xcode中激活UIView的宽度和高度?,第1张

概述我有这个子视图,我想添加到我的主视图,但使它从原点扩展。我阅读了一些苹果文档,但我不明白我在做什么错误。我可以动画化框架的起点,即让它从任何地方滑入,但宽/高似乎不是动画。代码如下: [UIView beginAnimations:@"animateAddContentView" context:nil];[UIView setAnimationDuration:0.4];customView 我有这个子视图,我想添加到我的主视图,但使它从原点扩展。我阅读了一些苹果文档,但我不明白我在做什么错误。我可以动画化框架的起点,即让它从任何地方滑入,但宽/高似乎不是动画。代码如下:

[UIVIEw beginAnimations:@"animateAddContentVIEw" context:nil];[UIVIEw setAnimationDuration:0.4];customVIEw.frame= CGRectMake(self.vIEw.frame.origin.x +5,self.vIEw.frame.origin.y +5,150);[self.vIEw addSubvIEw:customVIEw];customVIEw.frame= CGRectMake(self.vIEw.frame.origin.x +5,310,150);[UIVIEw commitAnimations];

我也尝试只将setFrame部分放在动画中,如下所示:

customVIEw.frame= CGRectMake(self.vIEw.frame.origin.x +5,150);[self.vIEw addSubvIEw:customVIEw];[UIVIEw beginAnimations:@"animateAddContentVIEw" context:nil];[UIVIEw setAnimationDuration:0.4];customVIEw.frame= CGRectMake(self.vIEw.frame.origin.x +5,150);[UIVIEw commitAnimations];

但它仍然不行!

编辑:

根据建议,我已将其移动到基于块的动画解决方案,这是确切的代码:

NSLog(@"yourvIEw : %@",customVIEw);customVIEw.frame= CGRectMake(self.vIEw.frame.origin.x +5,150);NSLog(@"yourvIEw : %@",customVIEw);[self.vIEw addSubvIEw:customVIEw];NSLog(@"yourvIEw : %@",customVIEw);//    [customVIEw setFrame:CGRectMake( 0.0f,480.0f,customVIEw.frame.size.wIDth,customVIEw.frame.size.height)];[UIVIEw animateWithDuration:0.4                      delay:0                    options:UIVIEwAnimationCurveEaseInOut                 animations:^ {                     NSLog(@"yourvIEw : %@",customVIEw);                     customVIEw.frame = CGRectMake(self.vIEw.frame.origin.x +5,150);                     NSLog(@"yourvIEw : %@",customVIEw);                 }completion:^(BOol finished) {                 }];

由于某种原因,这仍然不起作用。我看到的可能问题是:

>我正在加载这个customVIEw从一个笔尖,特别是310乘以150,也许这是一个问题。
>我没有导入正确的框架,但是由于我可以对这个视图的frame.origin部分进行动画处理,我不知道是这样的…我有QuartzCore和Core Graphics都导入和填充。

在日志中的每个点,它提供正确的内容:例如,在目标帧之前,大小为0,150,并且在我将帧设置为310,150之后,但是动画不起作用!

解决方法 为了使视角“成长”到位,不要动画框架。动画转换。

从笔尖加载您的子视图。将其变换设置为0:

vIEw.transform = CGAffinetransformMakeScale(0,0);

然后将其添加到您的超级视图。

在动画块内,将变换设置为身份:

vIEw.transform = CGAffinetransformIDentity;

而视图将会增长到正常的大小。您可能需要调整锚点,使其从正确的点成长。

您还可以更改块内的框架,但是仅移动视图我更喜欢更改中心属性,如果还有变换,则不应该尝试设置框架。

对于奖励积分,您还可以将其动画化为略大于1.0的比例,然后在完成块中链接的动画中动画回到身份转换。这使得视图“d出”出来,就像一个警报视图。

总结

以上是内存溢出为你收集整理的ios – 如何在Xcode中激活UIView的宽度高度?全部内容,希望文章能够帮你解决ios – 如何在Xcode中激活UIView的宽度和高度?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1074679.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存