Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在单个tableview单元格中以相等的宽度、边和空间显示两个文本字段_Ios_Swift_Xcode_Uitableview - Fatal编程技术网

Ios 如何在单个tableview单元格中以相等的宽度、边和空间显示两个文本字段

Ios 如何在单个tableview单元格中以相等的宽度、边和空间显示两个文本字段,ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,我想在一个tableview单元格中显示两个文本字段,并在它们之间加上分隔符。这两个文本字段与边和分隔符的空间相等。我想用Swift语言在tableview单元格类中以编程方式创建它 我希望这是适合所有尺寸的设备 注意:我没有使用自动布局 有什么建议吗 我强烈建议您使用UIStackViews,因为它听起来像是解决您问题的完美用例 文档中UIStackView的定义: 一个简化的界面,用于在任意一个 列或行 它可以处理视图的大小调整行为,还可以轻松控制元素之间的边距和间距。 您可以将uistac

我想在一个tableview单元格中显示两个文本字段,并在它们之间加上分隔符。这两个文本字段与边和分隔符的空间相等。我想用Swift语言在tableview单元格类中以编程方式创建它

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

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


有什么建议吗

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

文档中UIStackView的定义:

一个简化的界面,用于在任意一个 列或行

它可以处理视图的大小调整行为,还可以轻松控制元素之间的边距和间距。 您可以将
uistackview
与故事板一起使用,也可以根据您要查找的内容以编程方式使用

您可能还需要阅读文档中的指南,以了解有关
uistackview
的更多信息

如何使用:

假设您有两个文本字段,
textFieldA
textFieldB
和名为
separatorView
的分隔符视图

以下是如何在
UITableViewCell
子类中以编程方式设置
UIStackViews

   // 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
这将为您节省大量时间,因为您不需要为所有视图到处添加约束,而只需要为堆栈视图添加约束。然后,堆栈视图将处理其排列的子视图

在您的情况下,您可能需要更改视图的拥抱和压缩阻力值,以确保它在任何屏幕上看起来都很棒


正如您所看到的,您可以在堆栈视图上设置许多属性,所以您可以随意尝试不同的值,并按照您喜欢的方式进行设置

使用堆栈视图,轴水平,分布等于按比例填充

self.rightanch、self.leftAnchor、self.topAnchor对于这些,我能给什么?你可以给它任何你想给它的值,这取决于你需要多少像素的边距/等等,所以这完全取决于你。你说它不符合你的要求是什么意思?你能说得更具体些吗?我认为您不应该期望得到一个答案,即给出一个包含所有内容的完整代码,而应该给出提示和技巧,向您展示如何解决问题。因为所有的值(间距、左、右锚定常量等)实际上都取决于您的实现以及您希望应用程序的外观:)。您可以尝试使用这些值,看看它如何适合您的问题,当然,如果有什么不符合预期,请随时询问我!谢谢@Alex,但问题是我没有使用自动布局。不客气!您不使用自动布局是什么意思?如何配置视图?:)