我正在尝试从我的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
}
答案 0 :(得分:-2)
哇,好。因此,对于将来偶然发现此问题并处于精神错乱边缘的任何人,这就是我如何解决的方法。 Apparantley从XIB文件添加UIView时,需要两次调用超级视图,如下所示:let view = sender.superview?.superview
为了获得删除按钮的实际超级视图