【问题标题】:Remove custom UIView(s) dynamically on user selection/highlighed in ios swift在用户选择/在 ios swift 中突出显示时动态删除自定义 UIView
【发布时间】:2015-08-13 02:19:19
【问题描述】:

我是 swift 新手,请告知实现此目的的最佳方法。 假设在父视图下添加了 3 到 4 个(自定义)UIView 当用户选择/突出显示一个特定的(例如第二个 UIView)时,这将被删除,整个布局将立即重新渲染。有什么想法吗?

【问题讨论】:

  • 为每个视图附加一个手势识别器。 gr 方法获取一个 gr 作为参数...你可以说 gr.view.removeFromSuperview()

标签: ios objective-c iphone swift uiview


【解决方案1】:

将所有视图连接到一个 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()
        }
    }
}

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

【讨论】:

  • 非常感谢专业人士。我自己有点困惑,这将删除自定义 UIView 或 UITableViewCell?我的自定义“视图”是否必须从 UITableViewCell 继承才能添加到表格单元格或任何 UIView 都可以?
  • 另外,如果视图被移除,UITableView 的行数/条目数也会被移除?不知何故,我还需要在当前的 TableView 中存储什么样的视图以供以后使用。
  • 这将从UITableViewCellcontentView 中删除自定义UIView。您的视图需要从UIView 继承,您的单元格需要从UITableViewCell 继承。我建议阅读table view programming guide 之后你会更清楚
猜你喜欢
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 2018-03-28
  • 2011-04-14
  • 2014-12-05
  • 1970-01-01
相关资源
最近更新 更多