【发布时间】:2014-01-14 00:46:04
【问题描述】:
这在 ios7 之前有效,当时有人点击了 UIScrollView 中可能成为第一响应者的任何东西。现在它没有了 - UITextFields/Views 仍然可以显示在键盘下。
代码:
- (void)keyboardWasShown:(NSNotification*)notification{
//Some similar questions mentioned this might work, but made no difference for me
self.automaticallyAdjustsScrollViewInsets=NO;
NSDictionary* info = [notification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
float height = 0.0;
if (UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
height = kbSize.width;
} else {
height = kbSize.height;
}
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, height, 0.0);
[UIView animateWithDuration:.25
delay:0
options:(UIViewAnimationOptionAllowUserInteraction)
animations:^
{
self.editorScrollView.contentInset = contentInsets;
self.editorScrollView.scrollIndicatorInsets = contentInsets;
}
completion:^(BOOL finished)
{
}];
}
目前,当 uitextfield/view 被分配为第一响应者状态时,使用此代码不会发生任何事情。插图似乎没有改变 - 我也许可以使用 contentOffset 但我必须找到刚刚成为第一响应者的原始视图的 Y。
就像我说的,在 ios7 之前,此代码有效(分配第一响应者状态时,键盘后面不会隐藏任何文本字段/视图)。我似乎遗漏了一些明显的东西,或者在 ios7 中有更好的方法吗?
【问题讨论】:
-
有人可以详细说明为什么这被否决了吗?我提供了适用场景的所有代码,如果我遗漏了一些明显的东西,我很乐意扩展任何内容。
-
“关闭投票”队列上的评论不清楚您在问什么。他们在堆栈溢出时成群结队地狩猎。另请参阅meta.stackexchange.com/questions/9953/…。
-
我在队列中看到了这个,在我看来它是光明正大的。不知道为什么它被提名关闭。
-
好的,谢谢...只是想确保我在提出问题时尽我所能。
-
好吧,我对 Objective-C 或(Apple)IOS 了解不多,但这个问题对我来说似乎很清楚,而且写得很好。我也投票反对关闭。也许其中一位接近投票者可以发表评论,说明他们希望看到什么得到澄清?
标签: ios objective-c uiscrollview