Swift UITableView 未显示所有结果

Posted

技术标签:

【中文标题】Swift UITableView 未显示所有结果【英文标题】:Swift UITableView not showing all result 【发布时间】:2015-10-15 15:51:33 【问题描述】:

我将 UITableView 连接到一个数组。 var shoppingList: [String] = ["鸡蛋","牛奶","A","B","C","D","E","F","G","H","I ","J","K","L","M","N","O"] 但是,当我在模拟器中运行应用程序时,它不允许我滚动到最后。这是为什么?我只能滚动到字母“I”并看到一半的“J”,但我无法进一步向下滚动。在 func tableView 中,它显示了正确的数组大小,所以我知道项目都在那里,但不能滚动到最后。下面是屏幕截图。谢谢你。 screen shot screen shot 2

这是代码

import UIKit

class TestTableViewController: UITableViewController 
    var shoppingList: [String] = ["Eggs", "Milk","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"]

    override func viewDidLoad() 
        super.viewDidLoad()

        print("test")
        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem()
    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int 
        // #warning Incomplete implementation, return the number of sections
        return 1
    

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        // #warning Incomplete implementation, return the number of rows
        print(shoppingList.count)
        return shoppingList.count
    

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCellWithIdentifier("TestCell", forIndexPath: indexPath)

        // Configure the cell...
        cell.textLabel!.text = shoppingList[indexPath.row]
        // Configure the cell...
        print("here")
        return cell
    

【问题讨论】:

如果您不发布代码,我们如何帮助您? 谢谢,我刚刚发布了代码。 tableView的大小在哪里设置?如果 tableview 比屏幕长,您将看不到最后几个元素 为什么要在 Swift 问题中标记objective-c? 如何设置tableView的大小?我把它放在视图控件中。我上传了另一个布局的屏幕截图。抱歉,因为我认为这更像是一个 UI 问题而不是代码,并且由于对象 c 使用相同的 UI,我不妨标记它。 【参考方案1】:

Julia,表格视图似乎比屏幕本身长。如果您进入故事板并缩短 tableview 的长度,您将能够看到其余部分,只要它与屏幕尺寸相同或更短。

您可以添加约束,这些约束将自动捕捉到适合任何大小的屏幕。

如果你想通过代码来做,在你的 viewDidLoad() 中试试这个

    tableView.frame.size = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)

【讨论】:

您好,tableview好像拖不过去,怎么设置大小?如何添加将自动对齐以适应的约束,因为最终我需要用动态数据填充它。此外,当我尝试在代码中调整它的大小时出现错误,它说“无法将类型'CGRect'分配给 CGSize 类型的 vlue 在这种情况下,输入这个比较困难。 YouTube,自动约束。显示而不是输入非常简单。

以上是关于Swift UITableView 未显示所有结果的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableView 单元格 iOS Swift 中突出显示搜索结果

iOS - UIVIewController 中的 UITableView 不显示所有行 [Swift]

Swift 循环遍历 UITableView 中的所有 UITextView

Swift UITableView didSelectRowAtIndexPath 错误

UITableView 未显示正确的行数

uitableview 内容大小未正确返回 swift