我想在单个tableview单元格中显示两个文本字段以及它们之间的一些分隔符。那些,两个文本域与边缘和分隔符具有相等的空间。我想以编程方式在Swift语言的tableview单元类中创建它。
我希望这适合所有尺寸的设备。
注意:我没有使用自动布局。
有什么建议吗?
答案 0 :(得分:1)
我强烈建议您使用UIStackViews
,因为它听起来像是您问题的完美用例。
文档中UIStackView的定义:
一个简化的界面,用于在两者中布置一组视图 一列或一行。
它将处理视图的大小调整行为,您还可以轻松控制元素之间的边距和间距。
您可以将UIStackViews
用于故事板或以编程方式使用,具体取决于您要查找的内容。
您可能还需要阅读文档中的this指南,详细了解UIStackViews
。
使用方法:
假设您有两个文本字段textFieldA
,textFieldB
以及名为separatorView
的分隔符视图。
以下是在UIStackViews
子类中以编程方式设置UITableViewCell
的方法:
// Create and configure your stack view
let stackView = UIStackView()
stackView.axis = UILayoutConstraintAxis.horizontal
stackView.distribution = UIStackViewDistribution.fillProportionally
stackView.alignment = UIStackViewAlignment.fill
stackView.spacing = 20.0
// Add your textfields and your separator view to the stack view
stackView.addArrangedSubview(textFieldA)
stackView.addArrangedSubview(separatorView)
stackView.addArrangedSubview(textFieldB)
stackView.translatesAutoresizingMaskIntoConstraints = false
// Add your stack view:
self.addSubview(stackView)
// Configure the constraints for your stack view
// (Of course you can set up your stack view the way you want and you don't have to absolutely use constraints, but it's just for the example)
stackView.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -20).isActive = true
stackView.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 20).isActive = true
stackView.topAnchor.constraint(equalTo: self.topAnchor, constant: 20).isActive = true
stackView.heightAnchor.constraint(equalToConstant: 200.0).isActive = true
它将为您节省大量时间,因为您不需要为所有视图添加约束,但仅限于堆栈视图。然后堆栈视图将处理其排列的子视图。
在您的情况下,您可能需要做的一件事是更改视图的拥抱和抗压力值,以确保它在任何屏幕上看起来都很棒。
正如您所看到的,您可以在堆栈视图中设置许多属性,因此您可以随意尝试不同的值并按照您喜欢的方式进行设置!
答案 1 :(得分:0)
使用水平轴水平的分布视图,分布等于fillProportionally