我遇到了涉及桌面视图和键盘的问题。我开发了我的程序,以便当选择表视图时,它将表格视图向上滚动通过键盘,以便通过计算保持文本字段可见所需的向上滚动量然后使用它来保持可见一个变换来移动远处的帧。
由于UIView仍处于活动状态,我可以继续滚动较小的视图并选择其他文本条目并对其进行更改。
出现问题,我无法在列表中看到底部项目。我想将不滚动的“容差”扩展到等于键盘的高度,然后在我解除键盘后将其设置回默认值。
感谢。
答案 0 :(得分:1)
为什么要修改表格的框架?你可以在UITableView上使用scrollToRowAtIndexPath:atScrollPosition:animated:
然后你就不用担心在键盘出现和消失时修改tableview的框架
答案 1 :(得分:1)
一个看起来不错的好方法是不仅滚动tableView,而是将整个tableView(可能是其周围的视图)向上移动键盘的高度(当然,在解雇时再次向下移动)
myTableView.center = CGPointMake(myTableView.center.x, myTableView.center.y - keyboardHeight); //and vice versa for keyboard dismissal
如果这样可行,您可以尝试动画制作动画。
如果您希望能够比平时更多地滚动tableView,可以在滚动之前尝试设置其contentSize
属性。由于UITableView
是UIScrollView
的子类,如果Apple没有以某种方式覆盖其行为,这应该有效。
myTableView.contentSize = CGSizeMake(myTableView.contentSize.width, myTableView.contentSize.height + keyboardHeight); //and vice versa when keyboard is dismissed