繁体   English   中英

在用户选择时动态删除自定义UIView /在iOS Swift中高亮显示

[英]Remove custom UIView(s) dynamically on user selection/highlighed in ios swift

我是新手,请提供最好的方法来实现这一目标。 假设当用户选择/突出显示一个特定的视图(例如第二个UIView)时,是否在父视图下添加了3到4个(自定义)UIView,它将被删除并且整个布局将立即重新呈现。 任何想法?

将所有视图连接到一个IBOutletCollection,添加用于点击的手势识别器,然后在识别器回调中获取接触点,并检查该点是否包含在插座集合的视图之一中。

@IBOutlet var views: [UIView]!

override func viewDidLoad() {
    super.viewDidLoad()
    let tapGesture = UITapGestureRecognizer(target: self, action: Selector("viewTapped:"))
    self.view.addGestureRecognizer(tapGesture)
}

func viewTapped(tapGesture: UITapGestureRecognizer) {
    let locationInView = tapGesture.locationInView(view)

    for v in views {
        if CGRectContainsPoint(v.frame, locationInView) {
            v.removeFromSuperview()
        }
    }
}

确保为每个视图都不存在的状态设置了自动布局设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM