UIScrollView:在视图控制器视图帧更改后滚动内容



简而言之...我可以滚动内容,但是在更改 ViewController 视图帧后,我无法滚动到顶部以查看"所有"滚动视图内容(帧原点 Y 值减小,因此 VC 视图向上移动以适应键盘(。

在情节提要视图控制器上,我添加了一个UIScrollview和它下面的按钮。滚动视图受限于其父视图(VC(视图。我在滚动视图中添加一个内容视图并将其限制为滚动视图,并在内容视图和滚动视图父视图之间添加相等的宽度和高度约束。然后,我将文本字段添加到内容视图,并将它们约束到内容视图。我计算并设置了滚动视图内容大小,以便我只能滚动内容而不是整个内容视图。目前为止,一切都好。

我注册了键盘通知,并在键盘中显示处理程序我减小了视图控制器的视图原点 Y 值(通过 setFrame(,该值向上移动视图,因此视图的底部最终位于键盘上方。同样在键盘WillShow处理程序中,我按键盘的垂直高度增加滚动视图内容大小,因为scrollView区域已减小键盘的垂直高度。

我无法滚动内容,但是内容偏移量 (0,0( 位于内容中间位置,并且附加内容大小显示在文本字段内容下方。我无法再向上滚动到内容的顶部。

我知道scrollView通过更改其边界来滚动其内容,因此我尝试更改滚动视图框架(减小其原点Y值(,并且也对内容视图进行了相同的尝试,但是当contentView中的一个文本字段成为第一响应者或我只是尝试用鼠标滚动时,内容向下滚动并且内容的上半部分不可见且无法滚动到(如前所述内容偏移量是(0,0(内容的一半,是"内容的顶部"。

有没有人看到我在显示键盘的情况下继续滚动所有内容并且视图控制器原点 Y 值降低的方法有任何明显的问题?

我需要添加contentInset和scrollIndicatorInsets。很棒的文章在这里...https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/

最新更新