gpt4 book ai didi

keyboard - 如何同时设置 contentoffset 并更改 UIScrollview 的高度

转载 作者:行者123 更新时间:2023-12-02 18:55:58 25 4
gpt4 key购买 nike

当键盘显示时,我尝试向上滚动 UISCrollView

我使用 setContentOffset 将 uiview 向上移动。

同时我想将 UISCrollView 的高度降低到( View 高度 - 键盘高度),以便整个内容 View 可以滚动。

我在keyboardWillShow通知中应用了这两项更改

当我实际在应用程序中打开键盘时,内容首先被向上推,然后被向下推(这会产生闪烁效果)。我正在尝试一次性平滑这两种转变..

可能吗?

下面的代码 ---

- (void) keyboardWillShow {
CGPoint contentOffset = scrollView.contentOffset;

CGRect scrollViewFrame = scrollView.frame;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];

if (contentOffset.y >= 0 && contentOffset.x >= 0) {
isContentOffset = YES;
contentOffset.y += screenShift;
[scrollView setContentOffset:contentOffset animated: NO];
}

scrollViewFrame.size.height = keyboardOrigin.y - self.view.frame.origin.y - toolbarHeight;
scrollView.frame = scrollViewFrame;
[UIView commitAnimations];
}

最佳答案

当您设置动画的ContentOffset时,有一个动画选项。这是我一直使用的代码

- (void)textViewDidBeginEditing:(UITextView *)textView
{
svos = scrollView.contentOffset;
CGRect rect = [textView bounds];
rect = [textView convertRect:rect toView:self.scrollView];
CGPoint point = rect.origin ;
point.x = 0 ;
[self.scrollView setContentOffset:point animated:YES];
doneButton.enabled = YES;
}

- (IBAction)donePressed
{
[scrollView setContentOffset:svos animated:YES];
[textview resignFirstResponder];
doneButton.enabled = NO;
}

对我来说效果很好。

关于keyboard - 如何同时设置 contentoffset 并更改 UIScrollview 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201622/

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