在用户选择/在 ios swift 中突出显示时动态删除自定义 UIView
Posted
技术标签:
【中文标题】在用户选择/在 ios swift 中突出显示时动态删除自定义 UIView【英文标题】:Remove custom UIView(s) dynamically on user selection/highlighed in ios swift 【发布时间】:2015-08-13 02:19:19 【问题描述】:我是 swift 新手,请告知实现此目的的最佳方法。 假设在父视图下添加了 3 到 4 个(自定义)UIView 当用户选择/突出显示一个特定的(例如第二个 UIView)时,这将被删除,整个布局将立即重新渲染。有什么想法吗?
【问题讨论】:
为每个视图附加一个手势识别器。 gr 方法获取一个 gr 作为参数...你可以说 gr.view.removeFromSuperview() 【参考方案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 中存储什么样的视图以供以后使用。 这将从UITableViewCell
的contentView
中删除自定义UIView
。您的视图需要从UIView
继承,您的单元格需要从UITableViewCell
继承。我建议阅读table view programming guide 之后你会更清楚以上是关于在用户选择/在 ios swift 中突出显示时动态删除自定义 UIView的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableView 单元格 iOS Swift 中突出显示搜索结果
UITableViewCell 不会在 swift 中保持突出显示