gpt4 book ai didi

swift - Tableview 不滚动到底部

转载 作者:行者123 更新时间:2023-11-28 08:16:19 25 4
gpt4 key购买 nike

一般来说,我是 swift 和 ios 开发的新手。我在 tableview 中显示 json。出于某些原因,tableview 没有滚动到底部(3 个单元格)。这是我的 TableView 所在的 UITableView 的代码:

class AllChaptersViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

@IBOutlet weak var tableView: UITableView!
var isLoadingTableView = true
var chapters = [Chapter]() //Chaper Array
var chapter = [ChapterMO]()
var imageURLs = [String]()
var chaptersArray = [AnyObject]()
var base = [AnyObject]()
var uri = ""
var path = ""
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

override func viewDidLoad() {
super.viewDidLoad()

Alamofire.request("https://appdata.omicronenergy.com/webindex/COMP-en.json").responseJSON { response in debugPrint(response)
let result = response.result
if let dict = result.value as? Dictionary<String,AnyObject>{
if let arr = dict["data"] as! NSArray?{
self.chaptersArray = arr as [AnyObject]
self.tableView.reloadData()
}
}
}


Alamofire.request("https://appdata.omicronenergy.com/webindex/products-en.json").responseJSON {
response in debugPrint(response)
let result = response.result
if let json = result.value as? Dictionary<String,AnyObject>{
if let arr = json["data"] as! NSArray? {
let tmpJson = arr[0] as! [String:AnyObject]
self.uri = tmpJson["uri"] as! String
}
}
}

tableView.layoutMargins = .zero
tableView.separatorInset = .zero
tableView.contentInset = .zero
self.automaticallyAdjustsScrollViewInsets = false
tableView.tableFooterView = UIView()
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.reloadData()

// Read qr code

let qrCodeButton = UIBarButtonItem(image: UIImage(named:"qrCode"),
style: .plain,
target: self,
action: #selector(AllChaptersViewController.readQrCode(_:)))

let moreButton = UIBarButtonItem(image: UIImage(named:"more"),
style: .plain,
target: self,
action: #selector(AllChaptersViewController.openDropDownMenu(_:)))

self.navigationItem.rightBarButtonItems = [moreButton,qrCodeButton]

}

override var prefersStatusBarHidden: Bool{
return true
}

func readQrCode(_ sender:UIBarButtonItem!) {
print("working")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "QRCodeViewController")
self.navigationController!.pushViewController(vc!, animated: true)
print("")
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

func openDropDownMenu(_ sender:UIBarButtonItem!) {
print("works too")
}


override func viewWillAppear(_ animated: Bool) {
self.navigationItem.title = "COMPANO 100"
self.tableView.layoutSubviews()
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return chaptersArray.count
}

func getData(){
do{
chaptersArray = try context.fetch(ChapterMO.fetchRequest())
}
catch {
print("Fetching failed")
}
}



func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}



func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:TableViewCell = tableView.dequeueReusableCell(withIdentifier: "chapterCell", for: indexPath) as! TableViewCell
let object = chaptersArray[indexPath.row] as! NSDictionary

let path = object.object(forKey: "path") as! String
let iconUrl = "https://appdata.omicronenergy.com/chapter_icons/COMP0\(path).png"

cell.icon.sd_setImage(with: URL(string:iconUrl))
cell.layoutMargins = .zero
let name = object.object(forKey: "name") as! String
cell.chapterName?.text = name
return cell
}

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let path = chaptersArray[indexPath.row]["path"]
let vc = self.storyboard?.instantiateViewController(withIdentifier: "ChapterViewController") as! ChapterViewController
let baseURL = uri
let title = chaptersArray[indexPath.row]["name"]
vc.title = title as! String
vc.baseURL = baseURL
vc.path = path! as! String
self.navigationController?.pushViewController(vc, animated: true)
}

最佳答案

这必须是tableView的高度确保我的想法在 ViewDidLoad 中加入这一行

self.tableView.frame = CGRect(x: self.tableView.frame.origin.x, y: self.tableView.frame.origin.y, width: self.tableView.frame.size.width, height: self.view.frame.size.height - self.tableView.frame.origin.y)

这将使 tableView 的高度在 self.view 之内而不是在它之外

想法是检查所有的 tableView 是否都出现在它的容器中,给 tableView 背景一个不同的颜色以便看得更清楚

关于swift - Tableview 不滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com