Мне удалось создать темное наложение после того, как щелкнул значок поиска, и мне удалось добавить просмотр таблицы на темное наложение, но теперь я хочу добавить панель поиска в этом табличном представлении. Я не могу понять это, так как мой код отличается от других. Я новичок в Swift, поэтому мой код, вероятно, не самый чистый. Могу ли я спросить, может ли кто-нибудь показать мне, как это сделать, потому что у меня нет идей? Я разместил свой код ниже, может кто-нибудь, пожалуйста, покажите мне, где я иду не так.
Большое спасибо
class SearchLauncher: NSObject {
let blackView = UIView()
let tableView = UITableView()
@objc func showSearch() {
if let window = UIApplication.shared.keyWindow {
blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
blackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleDismiss)))
window.addSubview(blackView)
window.addSubview(tableView)
let height: CGFloat = 600
let y = window.frame.height - height
tableView.frame = CGRect(x: 0, y: window.frame.height, width: window.frame.width, height: height)
blackView.frame = window.frame
blackView.alpha = 0
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.blackView.alpha = 1
self.tableView.frame = CGRect(x: 0, y: y, width: self.tableView.frame.width, height: self.tableView.frame.height)
}, completion: nil)
}
}
@objc func handleDismiss() {
UIView.animate(withDuration: 0.5) {
self.blackView.alpha = 0
if let window = UIApplication.shared.keyWindow {
self.tableView.frame = CGRect(x: 0, y: window.frame.height, width: self.tableView.frame.width, height: self.tableView.frame.height)
}
}
}
override init() {
super.init()
//start doing something here maybe
}
}```