【问题标题】:Problems animating labels and textfield (objective-c)动画标签和文本字段的问题(objective-c)
【发布时间】:2012-08-03 14:29:35
【问题描述】:

标签和文本字段的动画有问题。标签只是消失,文本字段不做任何事情。我不知道为什么,但是按钮我没有问题。想想错过了什么真的很愚蠢。好吧,这是我尝试过的标签:

UILabel *label = (UILabel*)[self.view viewWithTag:1];
[UIView animateWithDuration:1 animations:^{label.frame = CGRectMake(0,0,1,1);}];

对于文本字段:

UITextField *box = (UITextField*)[self.view viewWithTag:1];
[UIView animateWithDuration:1 animations:^{box.frame = CGRectMake(0,0,1,1);}];

我错过了什么?

【问题讨论】:

  • 它们是否在主线程上运行?

标签: objective-c xcode animation uitextfield uilabel


【解决方案1】:

CGRectMake(0,0,1,1) 将是一个非常小的盒子。它们并没有消失,而是将它们全部塞入一个像素中。尝试一些更合理的方法,例如CGRectMake(0,0,100,50),看看是否可行。

CGRectMake 定义为:

CGRect CGRectMake (
   CGFloat x,
   CGFloat y,
   CGFloat width,
   CGFloat height
);

所以您将宽度和高度设置为 1。

如果您只想移动中心而不调整大小,试试这个。

[UIView animateWithDuration:1 animations:^{label.center = CGPointMake(x,y);}];

其中 x 和 y 是新中心的坐标。

【讨论】:

  • 你是对的,我认为你不能用标签做 CGRectMake(0,0,1,1) 因为文本不能包含在太小的空间中,并且这就是为什么消失。但是,我还不能使它与文本字段一起工作:/。不过还是谢谢:)
  • 尝试按照我在帖子中的建议移动中心。这行得通吗?
  • 我知道了,我在问题上发布的代码是在一起的,并且两者都有标签:1,这会造成麻烦。我将文本字段的标签更改为 2 并且它起作用了。谢谢:)。
猜你喜欢
  • 2019-02-28
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 1970-01-01
  • 2016-12-26
  • 2021-03-15
  • 2014-05-18
相关资源
最近更新 更多