我在UIScrollVIEw中放了一堆视图.这些子视图的大小和位置由约束定义.这非常有效,滚动效果也很好.到现在为止还挺好.
但是,当我第一次在屏幕上显示vIEwcontroller时,我希望我的scrollvIEw一直滚动到底部,这就是麻烦开始的地方.为了知道底部的位置,我需要知道子视图中最低元素的位置和大小.也应该很容易(因为我在某处提到了UIVIEw):得到UIVIEw的框架并且瞧.
我想在滚动视图出现在屏幕上之前将其滚动到底部(基本上,在vIEwWillAppear :)中,但是仅在vIEwWillAppear之后和vIEwDIDAppear:之前调用约束.
在vIEwWillAppear中获取UIVIEw框架给了我一个零大小的CGRect.在vIEwDIDAppear中做同样的事情给了我正确的CGRect.但是vIEwDIDAppear对我来说太迟了,因为滚动视图已经在屏幕上,所以你看到内容向上移动.
有没有人有这个很好的解决方案?我尝试将代码放在vIEwDIDLayoutSubvIEws中,但这也不起作用.
解决方法 vIEwWillAppear的问题在于它在布局发生之前被调用.在布局后,您必须调整滚动视图的内容偏移量 – 在vIEwDIDLayoutSubvIEws方法中.在这是我的解决方案:@property (nonatomic,assign) BOol shouldScrollToBottom;- (voID)vIEwDIDLoad{ [super vIEwDIDLoad]; _shouldScrollToBottom = YES;}- (voID)vIEwDIDLayoutSubvIEws{ [super vIEwDIDLayoutSubvIEws]; // Scroll table vIEw to the last row if (_shouldScrollToBottom) { _shouldScrollToBottom = NO; [_scrollVIEw setContentOffset:CGPointMake(0,CGfloat_MAX)]; }}总结
以上是内存溢出为你收集整理的ios – 当使用autolayout时,如何在ViewWillAppear中将UIScrollView滚动到底部,没有可视化动画全部内容,希望文章能够帮你解决ios – 当使用autolayout时,如何在ViewWillAppear中将UIScrollView滚动到底部,没有可视化动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)