- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要帮助才能让我的聊天 ViewController 在您打开和关闭键盘时表现得像 Whatsapp 一样。这意味着:如果键盘打开, View 会向上移动。如果关闭,则返回到原始位置。
我已经拥有的:我的聊天 ViewController 有一个 ContainerView,在 ContainerView 下面是一个 TextField。我已经设置了两个正在捕捉 UIKeyboardWillShow 和 UIKeyboardWillHide 的观察者。 ContainerView 和 TextField 在顶部、左侧、右侧和底部都有约束。它们之间是垂直间距。
我尝试过的d:我采用了 TextField 的底部约束并向其添加了键盘的高度。它正确移动。
我需要帮助的地方:ContainerView 内的 TableView 无法随 TextField 正确移动。以下是显示我的问题的一些屏幕截图:http://imgur.com/a/zd7mw
看起来键盘覆盖了 ContainerView。但 ContainerView 中的 TableView 似乎搞砸了。
我希望在单击 TextField 时显示“感谢您阅读示例消息”,但它被截断了。每次打开键盘时,我都想过向下滚动到底部,但如果你看着聊天的中间并尝试输入一些东西,那是行不通的,你想保持在你正在看的地方。
感谢您阅读本文并感谢您的帮助!
最佳答案
有两种方法可以完成您想要完成的任务:
以编程方式修改底部约束常量以包括键盘高度。这会将表格 View 的底部固定到顶部。
我会使用的方法是向您的 tableview 添加一个等于键盘高度的内容插图。这种方法更简单,因为它不需要您修改 View 约束常量。
这样开始:
override func viewDidLoad(){
NotificationCenter.default.addObserver(self, selector: #selector(keyboardHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardShow), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
}
func keyboardShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
}
}
func keyboardHide(notification: NSNotification) {
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
}
请注意,如果您想将内容推到文本字段的底部,请将文本字段的高度添加到键盘高度。
关于iOS Swift3 用键盘移动一个 Textfield 和一个 ContainerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42739228/
我使用 Xcode 和 Swift 制作了一个 iOS 应用程序。 一个 ViewController 包含两个 ContainerView。用户可以使用 SegmentedControl 在它们之间
我有一个设置,我使用导航 Controller ,其中包括一个嵌入页面 View Controller 及其内容的容器 View 。 从左起:UINavigationController,我的类 MT
我想使用容器 View 来包含一个 Collection View 的三个实例。 我的网点是: @IBOutlet weak var topContainer: UIView! @IBOutlet w
我想创建带有阴影和圆形边缘的自定义 ContainerView。此 ContainerView 以小矩形的形式放置在另一个 UIView 的顶部。在这种特殊情况下,使用 CoreGraphics 添加
我有一个 ViewController 和一个 Container View,它有一个嵌入式 TableViewController。 现在我想访问 ViewController 中的 TableVi
使用带有嵌入序列的 ContainerView 我得到这个: * 由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“无法实例化名为 U
我想使用自动布局实现期望的行为(或者如果这不可能使用委托(delegate)或其他东西)。我有一个带有一个静态单元格的 tableView,这个单元格有一个 containerView,它有一个带有动
我的情况是,现在我的应用程序使用 12 个 ViewController。 每个都有两个 ContainerView,它们拥有相同的控件集(我将它们称为控制组),并通过 segues 显示它们。 到目
我有我的 UIViewController ,这是一个人的个人资料页面,它显示他们的姓名和照片。其中UIViewController我有一个 UIContainerView显示静态 UITableVi
我在从一个 containerview 传递到另一个 UIViewController 时遇到了麻烦 下图展示了我想做的事情的 Storyboard。 我的应用程序有一个 Containerview,
我有三个按钮和一个 UIView(我称它为 containerView),点击每个按钮,containerView 将显示一个 View 在通过自定义 segue 的 UIViewController
我是 Swift 的新手,需要帮助将数据从 TableViewCell 传递到 ContainerView 以更改标签的某些文本。 我当前的状态是将数据从 TabelViewCell 传递到 View
我正在尝试从显示它的 UIViewController 更新 iOS 上 ContainerView(嵌入 UIView 中的 UIViewController)的界面内容。但是,ContainerV
我有一个嵌入了 UIViewController(名为 embedVC)的 containerView。 在 embedVC 中,我想模态另一个 ViewController(名为 modalVC),
我创建了一个 UIViewController,其中包含一个包含 UITableViewController 的 ContainerView。在 ParentViewController 的 View
我是 Swift 的新手,我正在尝试学习如何以编程方式构建 iOS 应用程序,但对 Storyboard 的使用非常有限。现在,目标是在应用程序顶部创建一个菜单,其中将包含按钮。根据我的研究,执行此操
我有一个 ViewController 和两个重叠的 ContainerViews。 但我没有找到如何在 RootViewController 中从 ContainerView 获取子对象的方法。 最
如果通过界面生成器使用 socket ,我知道如何将 ViewController 添加到容器中。您只需将导出从容器拖到 ViewController 和 boom,一切就绪。但是当谈到以编程方式进行
我有这个代码: 主视图.swift func showSubViewInContainerView(view: String, parms: Int){ let controller
我有这个 Storyboard: 和这段代码: var actualVisibleView : String? = nil func showSubViewInContainerView(view:
我是一名优秀的程序员,十分优秀!