相关疑难解决方法(0)

Autolayout约束 - 键盘

我试图平滑地制作一个具有自动布局约束的桌面视图.我在我的.h中引用了约束"keyboardHeight",并在IB中将其链接起来.我想要做的就是在弹出窗口时用键盘为表格视图设置动画.这是我的代码:

- (void)keyboardWillShow:(NSNotification *)notification
{
    NSDictionary *info = [notification userInfo];
    NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
    NSTimeInterval animationDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    CGRect keyboardFrame = [kbFrame CGRectValue];
    CGFloat height = keyboardFrame.size.height;

    [UIView animateWithDuration:animationDuration animations:^{
        self.keyboardHeight.constant = -height;
        [self.view setNeedsLayout];
    }];
}
Run Code Online (Sandbox Code Playgroud)

事情是动画块是瞬时的,我看到在键盘完成动画之前出现了空格.所以基本上我看到视图的白色背景,因为键盘是动画.只要键盘是动画,我就无法使动画持续.

我接近这个错误的方式吗?提前致谢!

objective-c uikeyboard ios autolayout

33
推荐指数
3
解决办法
2万
查看次数

UIKeyboard避免和自动布局

考虑到重点关注iOS 6中的自动布局,以及Apple工程师的建议(参见WWDC 2012视频)我们不再直接操作视图框架,如何仅使用自动布局和NSLayoutConstraint来避开键盘?

更新

这看起来是一个合理的解决方案:键盘敏感布局(GitHub源)的一个例子,但我看到的一个潜在问题是当用户旋转设备并且键盘已经在屏幕上时会发生什么?

cocoa-touch objective-c uiviewcontroller ios ios6

27
推荐指数
4
解决办法
7607
查看次数