如何解决如何根据文本字段的搜索结果在tableview中显示行
最初我可以在 tableview 中显示所有行.. 现在我只需要显示搜索的文本字段行...
这里的文本字段和搜索按钮在 tableview 之外。 >
在tableview中显示所有行的代码:这里在postedServicesCall
参数的from_date
是nil然后我需要显示所有行..我可以在下面做代码..现在如何显示 from_date
中是否有值,然后只有日期包含在 tableview 中的行
class PageContentViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var fromDateTextField: MDCTextField!
private var servicesArray = [ServicesModel]()
override func viewDidLoad() {
postedServicesCall()
DispatchQueue.main.async {
self.servicesTableView.reloadData()
}
}
func postedServicesCall(){
let param = ["from_date" : ""]
APIReqeustManager.sharedInstance.serviceCall(param: param as [String : Any],method: .post,loaderNeed: false,loadingButton: nil,needViewHideShowAfterLoading: nil,vc: self,url: CommonUrl.posted_requests,isTokenNeeded: true,isErrorAlertNeeded: true,isSuccessAlertNeeded: false,actionErrorOrSuccess: nil,fromLoginPageCallBack: nil) { [weak self] (resp) in
self?.postedServicesData = Posted_services_base_model(dictionary: resp.dict as NSDictionary? ?? NSDictionary())
}
}
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return servicesArray.count
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ServicesTableViewCell",for: indexPath) as! ServicesTableViewCell
cell.serviceTitle.text = servicesArray[indexPath.row].title
cell.dateLabel.text = servicesArray[indexPath.row].date
cell.locationLabel.text = servicesArray[indexPath.row].location
return cell
}
//if i add date in textfield and tap on search.. then with the date how many rows are there should be display in tableview
@IBAction func searchtBtn(_ sender: TransitionButton) {
}
如果我在文本字段中搜索日期,那么我需要在 tableview 中显示与日期相关的行..如何?
请帮忙写代码
解决方法
试试这个简单的搜索实现
//
// ViewController.swift
//
// Created by Rajesh Gandru on 4/12/21.
//
import UIKit
//MARK:- User Model Class
struct User {
var userName: String?
var userNumber : String?
var UserAge : String?
}
//MARK:- tableview cell
class ExampleCell:UITableViewCell{
@IBOutlet weak var resultLBLref:UILabel!
}
class ViewController: UIViewController {
//MARK:- Class Outlets...
@IBOutlet weak var searchtextfeildref: UITextField!
@IBOutlet weak var tableViewref: UITableView!
//MARK:- Class Properties...
var listArr : [User] = []
var filteredlistArr :[User] = []
var searchMyOrders = false
//MARK:- View Lyfe cycle starts here..
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.listArr = [User(userName: "Raj",userNumber: "78623",UserAge: "34"),User(userName: "Ram",userNumber: "67467645",UserAge: "22"),User(userName: "Raki",userNumber: "5634534",UserAge: "43"),User(userName: "Raksha",userNumber: "098098",UserAge: "18"),User(userName: "Ravi",userNumber: "7863846",UserAge: "24")]
self.searchtextfeildref.addTarget(self,action: #selector(self.textFieldDidChange(_:)),for: UIControl.Event.editingChanged)
}
//MARK:- Textfeild Search
@objc func textFieldDidChange(_ textField: UITextField) {
// filter tableViewData with textField.text
let searchText = textField.text
//by_bus_cities_drop_address
filteredlistArr = self.listArr.filter {
return (($0.userName?.localizedLowercase.contains(searchText!))! ||
$0.userNumber!.localizedLowercase.contains(searchText!))
} ?? []
if(filteredlistArr.count == 0){
searchMyOrders = false;
} else {
searchMyOrders = true;
}
self.tableViewref.reloadData()
}
}
//MARK:- Tableview Content
extension ViewController : UITableViewDelegate,UITableViewDataSource{
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
if searchMyOrders {
return filteredlistArr.count
}else {
return listArr.count
}
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:ExampleCell = tableView.dequeueReusableCell(withIdentifier: "ExampleCell",for: indexPath) as! ExampleCell
if searchMyOrders {
cell.resultLBLref.text = filteredlistArr[indexPath.row].userName
}else {
cell.resultLBLref.text = listArr[indexPath.row].userName
}
return cell
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。