ios - 如何将 UIView 底部锚点向右移动到底部导航栏?
问题描述
我有一个控制器,它将显示 UIView,它在底部显示一个文本字段,但我已经有一个导航栏,所以每当我运行模拟器时,导航栏都会覆盖它。我将如何将 UIView 移动到导航栏的正上方?我在搞乱锚,但我仍然遇到麻烦。我在搞乱 containerView.bottomAnchor。
import UIKit
class ChatLogController: UICollectionViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Chat Log Controller"
collectionView?.backgroundColor = UIColor.white
setUpInputComponents()
}
func setUpInputComponents() {
let containerView = UIView()
containerView.backgroundColor = UIColor.red
containerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(containerView)
containerView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
containerView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
containerView.widthAnchor.constraint(equalToConstant: 50).isActive = true
let sendButton = UIButton(type: .system)
sendButton.setTitle("Send", for: .normal)
sendButton.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(sendButton)
sendButton.rightAnchor.constraint(equalTo: containerView.rightAnchor).isActive = true
sendButton.centerYAnchor.constraint(equalTo: containerView.centerYAnchor).isActive = true
sendButton.widthAnchor.constraint(equalToConstant: 80).isActive = true
sendButton.heightAnchor.constraint(equalTo: containerView.heightAnchor).isActive = true
let inputTextField = UITextField()
inputTextField.placeholder = "Enter message..."
inputTextField.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(inputTextField)
inputTextField.leftAnchor.constraint(equalTo: containerView.leftAnchor, constant: 8).isActive = true
inputTextField.centerYAnchor.constraint(equalTo: containerView.centerYAnchor).isActive = true
inputTextField.rightAnchor.constraint(equalTo: sendButton.leftAnchor).isActive = true
inputTextField.heightAnchor.constraint(equalTo: containerView.heightAnchor).isActive = true
let seperatorLineView = UIView()
seperatorLineView.backgroundColor = UIColor.black
seperatorLineView.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(seperatorLineView)
seperatorLineView.leftAnchor.constraint(equalTo: containerView.leftAnchor).isActive = true
seperatorLineView.topAnchor.constraint(equalTo: containerView.topAnchor).isActive = true
seperatorLineView.widthAnchor.constraint(equalTo: containerView.widthAnchor).isActive = true
seperatorLineView.heightAnchor.constraint(equalToConstant: 1).isActive = true
}
}
解决方案
设置tabBarController.tabBar.translucent
为true
使您的标签栏不透明。
tabBarController.tabBar.opaque = true
tabBarController.tabBar.translucent = true
推荐阅读
- python - 防止用户在 Python 3 中输入字符串
- c++ - 为什么 output_iterator 概念不需要 output_iterator_tag?
- javascript - 在文件夹上使用 gunzip
- python - 使用 python 填充缺失的时间戳和值
- java - 如何在 JAVA 中返回/打印多个对象的方法?
- firebase - Firebase 仅使用其 ID 从子集合中获取文档
- google-cloud-platform - 我们可以打开端口以允许来自 GKE 主机的流量吗?
- c# - PHP 服务器通过套接字与 WPF 应用程序通信
- flutter - 我们可以在代码中使用两次“initState”吗?
- blender - Blender:用形状分割对象