如何在以编程方式添加的 UIView 内部以编程方式创建 UITextView?
How to create a UITextView programatically, inside UIView that is added programatically too?
我正在尝试制作像 Instagram 和 Snapchat 这样的文本接受器视图。
我正在尝试在 UIView 中添加一个 UITextview(以编程方式),这也是以编程方式添加的。下面是我试图用来添加 UITextView 的代码,但在添加 UIView 代码时它不起作用。请帮忙。
我想要实现的是:
导入 UIKit
class TextViewViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let View1: UIView = {
let viewView = UIView()
viewView.translatesAutoresizingMaskIntoConstraints = false
viewView.contentMode = .scaleAspectFit
viewView.backgroundColor = .red
viewView.clipsToBounds = true
return viewView
}()
self.view.addSubview(View1)
View1.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
View1.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
View1.topAnchor.constraint(equalTo: view.topAnchor, constant: 250).isActive = true
View1.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -250).isActive = true
let textView = UITextView(frame: CGRect(x: 20.0, y: 90.0, width: 250.0, height: 100.0))
textView.contentInsetAdjustmentBehavior = .automatic
textView.center = self.view.center
textView.textAlignment = NSTextAlignment.justified
textView.backgroundColor = UIColor.lightGray
// Use RGB colour
textView.backgroundColor = UIColor(red: 39/255, green: 53/255, blue: 182/255, alpha: 1)
// Update UITextView font size and colour
textView.font = UIFont.systemFont(ofSize: 20)
textView.textColor = UIColor.white
textView.font = UIFont(name: "Verdana", size: 17)
// Make UITextView web links clickable
textView.isSelectable = true
textView.isEditable = false
textView.dataDetectorTypes = UIDataDetectorTypes.link
// Make UITextView corners rounded
textView.layer.cornerRadius = 10
// Make UITextView Editable
textView.isEditable = true
View1.addSubview(textView)
//
// let textView: UITextView = {
// let tv = UITextView(frame: CGRect(x: 20.0, y: 90.0, width: 100.0, height: 50.0))
// tv.contentInsetAdjustmentBehavior = .automatic
// tv.center = self.view.center
// tv.textAlignment = NSTextAlignment.justified
// tv.textColor = UIColor.blue
// tv.backgroundColor = UIColor.lightGray
// return tv
// }()
//
// View1.addSubview(textView)
// textView.topAnchor.constraint(equalTo: View1.topAnchor, constant: 20).isActive = true
// textView.bottomAnchor.constraint(equalTo: View1.bottomAnchor, constant: 20).isActive = true
// textView.leadingAnchor.constraint(equalTo: View1.leadingAnchor, constant: 0).isActive = true
// textView.trailingAnchor.constraint(equalTo: View1.trailingAnchor, constant: 0).isActive = true
}
}
问题出在下一行代码
textView.center = self.view.center
去掉它,你会在视图层级中看到textView
我正在尝试制作像 Instagram 和 Snapchat 这样的文本接受器视图。
我正在尝试在 UIView 中添加一个 UITextview(以编程方式),这也是以编程方式添加的。下面是我试图用来添加 UITextView 的代码,但在添加 UIView 代码时它不起作用。请帮忙。
class TextViewViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let View1: UIView = {
let viewView = UIView()
viewView.translatesAutoresizingMaskIntoConstraints = false
viewView.contentMode = .scaleAspectFit
viewView.backgroundColor = .red
viewView.clipsToBounds = true
return viewView
}()
self.view.addSubview(View1)
View1.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
View1.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
View1.topAnchor.constraint(equalTo: view.topAnchor, constant: 250).isActive = true
View1.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -250).isActive = true
let textView = UITextView(frame: CGRect(x: 20.0, y: 90.0, width: 250.0, height: 100.0))
textView.contentInsetAdjustmentBehavior = .automatic
textView.center = self.view.center
textView.textAlignment = NSTextAlignment.justified
textView.backgroundColor = UIColor.lightGray
// Use RGB colour
textView.backgroundColor = UIColor(red: 39/255, green: 53/255, blue: 182/255, alpha: 1)
// Update UITextView font size and colour
textView.font = UIFont.systemFont(ofSize: 20)
textView.textColor = UIColor.white
textView.font = UIFont(name: "Verdana", size: 17)
// Make UITextView web links clickable
textView.isSelectable = true
textView.isEditable = false
textView.dataDetectorTypes = UIDataDetectorTypes.link
// Make UITextView corners rounded
textView.layer.cornerRadius = 10
// Make UITextView Editable
textView.isEditable = true
View1.addSubview(textView)
//
// let textView: UITextView = {
// let tv = UITextView(frame: CGRect(x: 20.0, y: 90.0, width: 100.0, height: 50.0))
// tv.contentInsetAdjustmentBehavior = .automatic
// tv.center = self.view.center
// tv.textAlignment = NSTextAlignment.justified
// tv.textColor = UIColor.blue
// tv.backgroundColor = UIColor.lightGray
// return tv
// }()
//
// View1.addSubview(textView)
// textView.topAnchor.constraint(equalTo: View1.topAnchor, constant: 20).isActive = true
// textView.bottomAnchor.constraint(equalTo: View1.bottomAnchor, constant: 20).isActive = true
// textView.leadingAnchor.constraint(equalTo: View1.leadingAnchor, constant: 0).isActive = true
// textView.trailingAnchor.constraint(equalTo: View1.trailingAnchor, constant: 0).isActive = true
}
}
问题出在下一行代码
textView.center = self.view.center
去掉它,你会在视图层级中看到textView