如何在具有相等宽度,边缘空间的单个tableview单元格中显示两个文本字段euqal空间

时间:2017-09-25 07:37:24

标签: ios swift xcode uitableview

我想在单个tableview单元格中显示两个文本字段以及它们之间的一些分隔符。那些,两个文本域与边缘和分隔符具有相等的空间。我想以编程方式在Swift语言的tableview单元类中创建它。

我希望这适合所有尺寸的设备。

注意:我没有使用自动布局。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我强烈建议您使用UIStackViews,因为它听起来像是您问题的完美用例。

文档中UIStackView的定义:

  

一个简化的界面,用于在两者中布置一组视图   一列或一行。

它将处理视图的大小调整行为,您还可以轻松控制元素之间的边距和间距。 您可以将UIStackViews用于故事板或以编程方式使用,具体取决于您要查找的内容。

您可能还需要阅读文档中的this指南,详细了解UIStackViews

使用方法:

假设您有两个文本字段textFieldAtextFieldB以及名为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