UITextField编辑问题 - iPhone SDK
问题描述:
我有我的iPhone应用程序中我的UITextFields问题,我希望有人在这里可能见过。UITextField编辑问题 - iPhone SDK
我在屏幕上有几个UITextField,当它们被点击时,它们的键盘出现,它们被覆盖。为了克服这个问题,我的动画视图与动起来:
-(void)moveViewUpFromValue:(float)fromOldValue toNewValue:(float)toNewValue keep:(BOOL)keep {
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
theAnimation.duration=0.25;
theAnimation.repeatCount=1;
if(keep) {
[theAnimation setRemovedOnCompletion:NO];
[theAnimation setFillMode:kCAFillModeForwards];
}
theAnimation.fromValue=[NSNumber numberWithFloat:fromOldValue];
theAnimation.toValue=[NSNumber numberWithFloat:toNewValue];
[self.view.layer addAnimation:theAnimation forKey:@"animateLayer"];
}
此,在视觉上,伟大的作品,但是,当我去编辑(按住屏幕下去把放大镜),它不出现。互动在移动前保留在该位置。
任何想法可能会发生什么?
非常感谢, 布雷特
答
这是动画这样的事情一个有趣的方式,但不是最常见的一种。
您实际上正在为视图的转换设置动画 - 而不是视图的实际位置。显然,放大镜不遵守转换(非常合乎逻辑,因为它会变得透明,否则会延伸并歪斜)。
所以宁可动画位置,即self.view.frame
或self.view.center
(归结为相同的东西)。此外,我通常使用[UIView beginAnimations...]
等,但如果你的方法有效,它可能是一样好。
答
你所做的观点似乎是在不同的地方,但因为你还没有真正改变了立场它有效地仍然是在原来的位置的东西像命中测试等
我会首先动画您的视图的中心,而不是其转换。这只需要一个UIView动画而不是CABasicAnimation。此外,当动画完成时,您的视图实际上会在正确的位置结束,所以事情应该按照您的预期工作。
就是这样。谢谢一堆!看了一会儿之后,我确实认为[UIView beginAnimations ...]可能是最好的方法。 – Brett 2010-07-26 20:06:00