Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UIView动画宽度持续时间。。。不在iOS 8中工作_Ios_Objective C_Xcode_Animation_Ios8 - Fatal编程技术网

UIView动画宽度持续时间。。。不在iOS 8中工作

UIView动画宽度持续时间。。。不在iOS 8中工作,ios,objective-c,xcode,animation,ios8,Ios,Objective C,Xcode,Animation,Ios8,当键盘打开时,尝试设置按钮的动画时,[UIView animationWithDuration]出现问题。我收到一个通知,告诉我键盘何时出现,然后我让ViewController在视图中调用此方法。按钮会设置动画,但不正确。它只是从屏幕上的一个随机位置动画到它以前所在的位置。我之所以再次提出这个问题,是因为我在其他帖子中看到的答案是,在ViewController中将视图的TranslatesAutoResizezingMacSkinToConstraints属性设置为YES可以解决问题,但不能

当键盘打开时,尝试设置按钮的动画时,[UIView animationWithDuration]出现问题。我收到一个通知,告诉我键盘何时出现,然后我让ViewController在视图中调用此方法。按钮会设置动画,但不正确。它只是从屏幕上的一个随机位置动画到它以前所在的位置。我之所以再次提出这个问题,是因为我在其他帖子中看到的答案是,在ViewController中将视图的TranslatesAutoResizezingMacSkinToConstraints属性设置为YES可以解决问题,但不能解决问题

    [self.view setTranslatesAutoresizingMaskIntoConstraints:YES];
动画如下:

- (void)animateForKeyboardAppearanceWithKeyboardSize:(CGSize)keyboardSize; {
    [UIView animateWithDuration:0.3f
                 animations:^{
                     [self.sendSMSButton setFrame:CGRectMake(0,
                                                             self.frame.size.height - keyboardSize.height - self.sendSMSButton.frame.size.height,
                                                             self.frame.size.width,
                                                             self.sendSMSButton.frame.size.height)];
                 }];
}

有人知道发生了什么吗?提前感谢。

您是否确保不会重复调用此方法?同时尝试对按钮进行子类化,覆盖
-setFrame
,并在尝试设置按钮动画时仔细检查是否有其他内容正在设置按钮的帧。

是否使用自动布局?如果是这样,您最好在动画块中设置
NSLayoutConstraint
常量
属性。然后调用
updateConstraintsIfNeeded
。如果您没有使用
Autolayout
,则没有理由使用
SetTranslatesAutoResizezingMaskinToConstraints:
。你把
动画MarkeyBoardAppearancewithKeyboardSize:
称为哪里?我没有使用笔尖,所以我认为这不适用于这里。感谢您的回复。当它收到键盘即将出现的通知时,我在viewcontroller中调用
animateForKeyboardAppearanceWithKeyboardSize:
<代码>-(无效)键盘将显示:(NSNotification*)通知{NSDictionary*userInfo=[notification userInfo];CGSize键盘大小=[[userInfo objectForKey:UIKeyboardFrameBeginUserInfo]CGRectValue].size;[self.createAccountView AnimateForkeyBoardAppearance WithKeyboardSize:keyboardSize];}一旦您弄明白了这一点,您可能想看看这里找到的一些改进动画的想法。该函数只被调用一次。事实上,每当我设置帧(在动画块内部或外部)时,按钮都会以相同的方式(错误地)设置动画。调整所有其他视图的大小时也会发生这种情况。按钮是否有任何明显有趣的地方,比如变换?也许试着用一个简单的彩色UIView替换它。按钮在绿色背景下是全白色的。即使我将其帧设置为CGRectMake(0,0100);(即使在动画块之外),按钮也会保持在相同的位置,不会按指示执行。您是否更改了按钮的图层或其superview的任何类似内容?我认为你必须开始超越单个按钮来寻找你的答案。