Tableview不滚动到底部
我是新来的swift和ios开发的一般。我在tableview中显示json。由于某些原因,tableview不滚动到底部(3个单元格)。 这里是我的UITableView的代码的实现代码如下所在:Tableview不滚动到底部
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背景不同的颜色更好看
1.5行的自动布局不滚动 –
什么是1.5究竟 –
是的tableView中self.view或它的另一个视图 –
我不明白你的问题
的tableview不自动滚动到下当负载完成 或
拉起时不能滚动到底部?
注意:如果您为uitableview设置了禁忌,则无法为其设置名气。但如果你想做到这一点,请尝试:
yourView.translatesAutoresizingMaskIntoConstraints = true
无法滚动到最后3行 –
检查:在可视视图的故事板和约束条件下的底部条 –
检查与_uitableview_ –