gpt4 book ai didi

IOS 8 设置 View 框架不工作

转载 作者:可可西里 更新时间:2023-11-01 04:43:55 26 4
gpt4 key购买 nike

我有一个 View ,我想在显示键盘时移动它的位置,我使用 UIKeyboardWillShowNotification 委托(delegate)来更新位置,它在 IOS 7 设备中完美运行,但是当我尝试运行它时在 IOS 8 设备中, View 不会重新定位,框架已更新,正如我在日志中看到的那样。

下面是我的代码

-(void) keyboardWillShow:(NSNotification*) notification{

@autoreleasepool {
CGRect frame = _loginFrame.frame;
frame.origin.y-=200;

DLog(@"login frame %@ ",NSStringFromCGRect(frame));
[UIView animateWithDuration:0.25 animations:^{
[_loginFrame setFrame:frame];
}];
}

但是,当我在 dispatch_after 中尝试动画时,阻止它动画到新位置

   dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[UIView animateWithDuration:0.25 animations:^{
[_loginFrame setFrame:frame];
}];
});

知道为什么在没有 dispatch_after 的情况下框架没有动画到新位置吗?

谢谢!

注意:看起来 setFrame: 方法不起作用,不知道为什么,我已经创建了一个基本的 ios 8 应用程序来测试它

2014-09-11 18:59:54.836 KeyboardCheck[31215:1451974] keyboard show 2014-09-11 18:59:54.837 KeyboardCheck[31215:1451974] old frame {{60, 269}, {200, 30}} 2014-09-11 18:59:54.837 KeyboardCheck[31215:1451974] update frame {{60, 169}, {200, 30}} 2014-09-11 18:59:55.339 KeyboardCheck[31215:1451974] completion block frame {{60, 269}, {200, 30}} 2014-09-11 18:59:55.822 KeyboardCheck[31215:1451974] keyboard hide 2014-09-11 18:59:55.822 KeyboardCheck[31215:1451974] old frame {{60, 269}, {200, 30}} 2014-09-11 18:59:56.324 KeyboardCheck[31215:1451974] completion block frame {{60, 269}, {200, 30}}

最佳答案

我通过取消选中使用自动布局解决了我的问题。

如果你想要自动布局,这是另一种可能的解决方案:

https://teamtreehouse.com/forum/animating-views-does-not-seem-to-work-in-ios8-but-did-in-ios7

关于IOS 8 设置 View 框架不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25788158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com