在collectionviewCell中,我有一个“ MainButton”按钮(UIButton的子类):
var buttonTest: MainButton {
let testBtn = MainButton(type: .custom)
testBtn.setTitle("Save settings", for: .normal)
testBtn.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
return testBtn
}
此外,在我的设置功能中,我介绍了一个基本的UIView,它将按住我的按钮。
let supportTest = UIView()
supportTest.backgroundColor = .blue
supportTest.translatesAutoresizingMaskIntoConstraints = false
supportTest.clipsToBounds = true
addSubview(supportTest)
supportTest.anchor(top: nil, leading: leadingAnchor, bottom: nil, trailing: trailingAnchor)
supportTest.topAnchor.constraint(equalTo: separator.bottomAnchor, constant: 20).isActive = true
supportTest.heightAnchor.constraint(equalToConstant: 40).isActive = true
然后我将我的按钮添加为子视图
supportTest.addSubview(buttonTest)
但是,当I约束使其居中,这2个下一行使其崩溃。
buttonTest.anchor(top: nil, leading: leadingAnchor, bottom: nil, trailing: trailingAnchor)
buttonTest.centerXAnchor.constraint(equalTo: supportTest.centerXAnchor).isActive = true
有一种方法以正确使得该按钮为中心没有给它的宽度?因为我的按钮标题因内容而异。 我想过一个stackview,与2“空”的观点边境吧...
告诉我您的想法。
这是如何看起来像实际(2个最后行作为当然的注释): https://imgur.com/n380XEA
答案 0 :(得分:0)
制作
if (!in_array($row['InvoiceNo'], $invoiceHasProcessed)) {
$tot_BalanceAmt += $row['BalanceAmt'];
$invoiceHasProcessed[] = $row['InvoiceNo'];
}
因为它当前是一个计算属性,所以您添加到lazy var buttonTest: MainButton = {
let testBtn = MainButton(type: .custom)
testBtn.setTitle("Save settings", for: .normal)
testBtn.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
return testBtn
}()
的实例与您将约束设置为1的实例不同,后者没有superview,因此发生崩溃
还将按钮的前,尾和centerX约束设置为,还需要y约束(top / bottom / centerY)