需要帮助创建复杂的 UIView - Swift xCode [关闭]
Posted
技术标签:
【中文标题】需要帮助创建复杂的 UIView - Swift xCode [关闭]【英文标题】:Need help creating a complicated UIView - Swift xCode [closed] 【发布时间】:2018-01-25 07:54:22 【问题描述】:我需要一些帮助来创建一个复杂的 UIView。在视图中,我有一个 UITextField 和一个标签。这些工作正常。在此之下,我想向我的视图添加一个视图,它是一个 UITableView。我想在这个 UITableView 中使用与在另一个 UITableViewController 中相同的数据。这是我的视图代码:
override init(frame: CGRect)
super.init(frame: frame)
setupViews()
required init?(coder aDecoder: NSCoder)
fatalError("init(coder:) has not been implemented")
func setupViews()
//Setup View
self.backgroundColor = .white
//Add Subviews
self.addSubview(textField)
self.addSubview(nameLabel)
//Add Constraints
//Add Constraints
addConstraintsWithFormat(format: "H:|-16-[v0]-16-|", views: textField)
addConstraintsWithFormat(format: "V:|-150-[v0(75)]|", views: textField)
nameLabel.leadingAnchor.constraint(equalTo: textField.leadingAnchor, constant: 3).isActive = true
nameLabel.bottomAnchor.constraint(equalTo: textField.topAnchor, constant: -3).isActive = true
//Add Items
let textField: UITextField =
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 300, height: 40))
textField.placeholder = "List Name"
textField.font = UIFont.systemFont(ofSize: 27) // Make relative to height!!
textField.borderStyle = UITextBorderStyle.roundedRect
textField.keyboardType = UIKeyboardType.default
textField.returnKeyType = UIReturnKeyType.done //Sets Return Key text to "Done"
textField.clearButtonMode = UITextFieldViewMode.whileEditing
textField.contentVerticalAlignment = UIControlContentVerticalAlignment.center
textField.translatesAutoresizingMaskIntoConstraints = false
return textField
()
let nameLabel: UILabel =
let label = UILabel()
label.text = "NAME"
label.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
label.translatesAutoresizingMaskIntoConstraints = false
return label
()
提前致谢!
【问题讨论】:
你遇到了什么问题? @rollstuhlfahrer 我不知道如何在这个视图类中添加一个 TableViewController 作为视图。 与添加标签和文本字段的方式相同 @MilanNosáľ 只需添加其他类的子视图项目? 【参考方案1】:就这么简单:
let tableView = UITableView()
// keep the reference to data source
let tableViewDataSource = CustomDataSource()
func setupViews()
self.addSubview(tableView)
// constraints to define its size and position (remember that unlike UILabel and UITextField, UITableView does not have intrinsic content size)
let tableView: UITableView =
let tableView = UITableView()
// setup data source
tableView.dataSource = tableViewDataSource
// other configuration
return tableView
()
关于 tableView 数据源,您基本上需要实现您在要与之共享表的 TableViewController
中已经执行的相同方法。
class CustomDataSource: NSObject, UITableViewDataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
// code from tableViewController
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
// code from tableViewController
【讨论】:
谢谢!我似乎无法从其他类中获取数据以加载到此处的 tableView 中。 tableView 显示但它是空的。 @MilanNosáľ @NikolasIoannou 您需要实现一个数据源并将其设置为表格视图 如何实现数据源以及在哪个类中。感谢您的快速响应 稍后再写 好的,我试试看。谢谢你的协助! @MilanNosáľ以上是关于需要帮助创建复杂的 UIView - Swift xCode [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Swift:如何将 MapView 放入 UIView(?)