我有一個視圖,我在編程上通過xib添加按鈕來創建另一個視圖。我能夠創建多個視圖點擊添加更多按鈕和刪除也工作,如果我刪除最後一個視圖,但問題發生在中間視圖由於缺少約束查看不正確更新波紋管圖像它是如何看待如何刪除視圖並更新約束?
在開始查看這個樣子
添加更多視圖後
除去中間視圖後
刪除按鈕代碼
@IBAction func deletebnt(_ sender: UIButton) {
let view = self.superview
let index = view?.subviews.index(of:self)!
delegate.txtcheck(text: countstr)
self.view.removeFromSuperview()
}
添加按鈕代碼
@IBAction func addMoreBnt(_ sender: UIButton) {
for constraint in addSuperview.constraints {
if constraint.firstAttribute == NSLayoutAttribute.height
{
constraint.constant += 45
space = constraint.constant
}
}
let newView : AvalabileTimeView = AvalabileTimeView()
newView.frame = CGRect(x: self.addsubView.frame.origin.x, y: 70, width: addsubView.frame.size.width, height:addsubView.frame.size.height)
newView.delegate = self as AvalabileTimeDelegate
addSuperview.addSubview(newView)
let index = addSuperview.subviews.index(of: newView)!
newView.translatesAutoresizingMaskIntoConstraints = false
let heightConstraint = newView.widthAnchor.constraint(equalToConstant:addsubView.frame.size.width)
let widthConstaint = newView.heightAnchor.constraint(equalToConstant:31)
let topConstraint = newView.topAnchor.constraint(equalTo: addSuperview.topAnchor, constant: space - 31) NSLayoutConstraint.activate([heightConstraint,topConstraint,widthConstaint])
}
委託來改變上海華
的高度0func txtcheck(text: String!) {
print(text)
for constraint in addSuperview.constraints {
if constraint.firstAttribute == NSLayoutAttribute.height
{
constraint.constant -= 45
// Here I have to set constraint for bottom view and topview of deleted view but I don't know how to do
}
}
}
這裏是鏈接到演示項目 https://github.com/logictrix/addFieldDemo
使用UITabelView。您可以非常輕鬆地實現此類型的操作。 – Ujesh
@Ujesh是的,如果我沒有解決這個問題,我必須使用其他選項,現在我正試圖解決這個問題。 –
這當然可以修復,但最好使用TableView,如果這是您無法使用TableView的分配,這是可以理解的。否則,請始終使用Apple爲您提供的最佳工具。 – CoderFrom94