我的应用程序中有一个UITableView
,以编程方式填充。 UITableview本身是通过Interface Builder创建的。
现在在加载任何单元格之前,我可以移动表格。但是,在表的填充之后,滚动被禁用了吗?
单元格仍然可以选择,但我无法滚动。现在我检查了重叠的视图,我做了view.bringSubview(toFront: tableView)
,我检查了UIGestureRecognizers
,但似乎没有任何东西可以窃取点击/点击/滑动......
经过一些调试后,我发现numberOfRowsInSection
返回25
,因此从技术上来说滚动应该是可能的......
有没有人有这方面的经验?也许我错过了一个设置?
编辑:
我的viewController:
class RegisterHomeCourseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var courses: [Course] = []
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset = UIEdgeInsetsMake(48, 0, 0, 0)
}
func updateLocation() {
locationManager.requestAlwaysAuthorization()
self.currentLocation = self.locationManager.location
self.refreshLocation()
self.update()
}
func refreshLocation() {
locationManager.requestAlwaysAuthorization()
if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.authorizedAlways {
self.currentLocation = self.locationManager.location
}
}
func update() {
_ = Course.find(query: searchText, callback: self.makeCourses)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tableView.delegate = self
self.tableView.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func backButtonPressed(_ sender: Any) {
self.navigationController?.popViewController(animated: true)
}
func setupRX() {
_ = self.searchTextField.rx.text.orEmpty.throttle(0.3, scheduler: MainScheduler.instance).distinctUntilChanged().bind { [unowned self] text in
self.search = nil
if text.count > 2 {
self.search = text
}
self.update()
}
}
func makeCourses(result: Result<[Course]>) {
switch result {
case .success(let courses):
self.courses = courses
self.tableView.reloadData()
case .failure(_):
return
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let course = courses[indexPath.row]
RegisterViewModel.shared.homeCourse = course
self.performSegue(withIdentifier: "nextStep", sender: nil)
tableView.deselectRow(at: indexPath, animated: false)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let course = self.courses[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: CourseTableViewCell.identifier, for: indexPath) as! CourseTableViewCell
if currentLocation != nil {
cell.make(course, location: currentLocation.coordinate)
} else {
cell.make(course, location: nil)
}
return cell
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return courses.count
}
}