Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 对齐Swift 3中不同单元格中的按钮_Ios_Swift_Uitableview_Swift3_Uibutton - Fatal编程技术网

Ios 对齐Swift 3中不同单元格中的按钮

Ios 对齐Swift 3中不同单元格中的按钮,ios,swift,uitableview,swift3,uibutton,Ios,Swift,Uitableview,Swift3,Uibutton,我有两个按钮,它们位于表格的不同单元格上,我希望它们对齐 第一个单元格由3个按钮组成,我只需将它们设置为等宽即可。。 但是对于贝娄的另一个,我想把它设置为与上面相同的对齐方式 首先,我尝试保存当前视图的宽度并将其设置为按钮,但没有成功: let curentWidth = self.viewThatneedsToBeDivided.bounds.width / 3 self.optionBtnCommon.frame.size.width = CGFloat(curentWidth) 然后我试

我有两个按钮,它们位于表格的不同单元格上,我希望它们对齐

第一个单元格由3个按钮组成,我只需将它们设置为等宽即可。。 但是对于贝娄的另一个,我想把它设置为与上面相同的对齐方式

首先,我尝试保存当前视图的宽度并将其设置为按钮,但没有成功:

let curentWidth = self.viewThatneedsToBeDivided.bounds.width / 3
self.optionBtnCommon.frame.size.width = CGFloat(curentWidth)
然后我试着设置一个约束,它看起来确实给了我合适的尺寸,但是对齐效果很差

let widthConstraint = NSLayoutConstraint (item: optionBtnCommon, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: curentWidth)
self.optionBtnCommon.superview?.addConstraint(widthConstraint)
self.optionBtnCommon.contentHorizontalAlignment = .center
self.viewThatneedsToBeDivided.layoutIfNeeded()

您不会直接将它们关联起来,因为它们位于不同的单元格中,但您有几个选项:

更改约束,使其与单元相关的宽度不是相等的,而是相等的,每个约束的宽度为单元或子视图的0.33。然后,您可以为单个按钮提供相同的约束。基本上,你需要让它们与两者之间的一致性联系起来,唯一的东西就是细胞。 你可以用隐藏的视图来伪装它。因此,添加按钮,然后添加其他两个视图,并设置相同的约束。然后,如果需要,将其他视图设置为隐藏或清晰的颜色。 考虑设置一些布局指南。实际上,这些视图比虚拟视图更好用。
您可以将所有按钮放在同一单元格中,将前三个按钮嵌入到水平堆栈视图中,将后三个按钮嵌入到水平堆栈视图中,并将两个堆栈视图嵌入到垂直堆栈视图中。这将为您提供必要的能力,使它们正确对齐。

如果您正在谈论检查您在问题中显示的图像

请记住,使用以下代码设置按钮的中心对齐方式

self.optionBtnCommon.contentHorizontalAlignment = .center
如果必须进行中心对齐,请记住 按钮的宽度限制必须相同,只有这样这些图像才会 保持一致。 如果前导相同但宽度不同,则必须保持左对齐。 或者,您可以使用第三个选项在“按钮”属性中设置图像插入以手动调整对齐方式。
请在两个单元格中从左到右设置第一个按钮的前导约束,并尝试为该布局约束指定完全相同的常量值。两个按钮都将自动对齐。虽然您可以这样做,但我假设它们位于不同的单元格中,这是有充分理由的,即单元格表示数据中的不同项目。@SupporterOfTruth,如他所说。不同的功能。所以不,错了,你的回答不好