首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIScrollView : UIEdgeInsets只在“顶部”和“左侧”工作

UIScrollView : UIEdgeInsets只在“顶部”和“左侧”工作
EN

Stack Overflow用户
提问于 2016-02-03 18:47:58
回答 1查看 721关注 0票数 1

我正在实现此方法以重新定位UIScrollView以显示被键盘弹出遮挡的UITextField:

Move a view up only when the keyboard covers an input field

滚动视图不会按预期的键盘高度从底部移动。变量'keyboardSize!.height‘正在接收正确的高度值,如果我向’底部‘参数输入随机值,则得到相同的结果。但是,如果我向“top”和“左侧”参数添加值,则在调用keyboardWasShown函数时,它们确实会移动滚动视图。

代码语言:javascript
复制
let contentInsets : UIEdgeInsets = UIEdgeInsets(top : 0.0, left : 0.0, bottom : keyboardSize!.height, right : 0.0)
self.scrollView.contentInset = contentInsets
self.scrollView.scrollIndicatorInsets = contentInsets

我在TableViewController上做得很好,但UIScrollView却不行。在这种情况下,UIViewController有一个UIView和一个分层在它上面的UIScrollView。任何帮助都很感激。

*编辑*

这一问题是IB中含糊不清的违禁品造成的。在重置它们并使用建议的约束之后,UIScrollView正确工作。最初,top约束是针对UINavigationBar设置的,而不是针对视图顶部设置的。

EN

回答 1

Stack Overflow用户

发布于 2016-02-03 19:04:43

您需要将文本字段向上滚动到滚动视图中的键盘上方。

代码语言:javascript
复制
  CGRect visibleRect = CGRect(x: self.view.frame.origin.x, y: self.view.frame.origin.y, width: self.view.frame.size.width, height: self.view.frame.size.height - keyboardSize?.height ?? 0);

  [scrollView setContentOffset:visibleRect.center animated:YES];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35185208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档