为什么我的UIStackView在删除后仍会显示子项

问题描述 投票:-1回答:1

我试图从我的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

        }
ios swift uistackview
1个回答
-2
投票

哇好的因此,对于任何在未来偶然发现并处于疯狂状态的人来说,我是如何解决它的。 Apparantley从XIB文件中添加UIView时需要两次调用superview:let view = sender.superview?.superview以获取删除按钮的actaul superview

© www.soinside.com 2019 - 2024. All rights reserved.