我试图从我的stackview创建一个删除排列的子视图但是当我尝试这样做时,实际的视图已经消失,但它仍然是空间。有什么方法可以避免这种情况吗?
继承我的onClick方法:
@objc func OnTrashButtonPress(sender: UIButton) {
let view = sender.superview
view!.isHidden = true
StackView.removeArrangedSubview(view!)
view!.removeFromSuperview()
}
继承人我的看法通常是这样的:https://imgur.com/CDq3vJs
并且当我删除一个视图时,看起来是什么样的:https://imgur.com/8HfdqAn
我基本上试图让下面的视图向上移动并填补空白空间,但我不认为那是因为视图没有被正确删除?我似乎无法弄清楚我做错了什么。
编辑:继承人实际添加视图的代码:
for (i, course) in response!.enumerated(){
var courseView = CourseView(frame: CGRect(x: 0, y: 0, width: 415, height: 160))
if let mark = course["mark"] as? CGFloat{
courseView.ProgressBar.value = mark
}else{
courseView.ProgressBar.isHidden = true
courseView.NATextView.isHidden = false
}
courseView.PeriodNumber.text = "Period: \(i+1)"
if course["Room_Number"] != nil{
courseView.RoomNumber.text = "Room: \(course["Room_Number"]!)"
}
if course["course"] != nil{
courseView.CourseCode.text = (course["course"] as! String)
}
if course["Course_Name"] != nil{
courseView.CourseName.text = (course["Course_Name"] as! String)
}
StackView.addArrangedSubview(courseView as UIView)
print(courseView as UIView)
courseView.TrashButton.addTarget(self, action: #selector(OnTrashButtonPress), for: .touchUpInside)
courseList.append(courseView)
StackViewHeight.constant = StackViewHeight.constant + 175
}
哇好的因此,对于任何在未来偶然发现并处于疯狂状态的人来说,我是如何解决它的。 Apparantley从XIB文件中添加UIView时需要两次调用superview:let view = sender.superview?.superview
以获取删除按钮的actaul superview