gpt4 book ai didi

ios - Swift 中的自定义表格 View 单元格,没有 Storyboard

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:28 25 4
gpt4 key购买 nike

我刚开始学习 iOS 开发和 Swift 语言,一直在尝试弄清楚如何在不使用 Storyboards/Interface Builder 的情况下创建自定义 UITableViewCell。我希望能够用 Swift 代码完成所有事情。到目前为止,我只能真正找到使用 Interface Builder 的应用程序。

我希望能够做的是创建一个可以在任何 TableView 中实例化的可重复使用的单元格。据我了解,我应该能够创建一个带有 subview 的自定义单元格,其数据可以由 TableView 的传入数据设置。对吧?

现在我有一个 UINavigationController,它带有一个嵌入式子类 UITableViewController。按照其他一些教程,我还学习了如何创建一个结构并为表格 View 单元格准备测试数据。但这就是我所能得到的。

// My Table View Controller
class InventoryListViewController: MainTableViewController {

let viewTitle = "Inventory"
var inventoryItems = [InventoryItem]()

override func viewDidLoad() {
super.viewDidLoad()

self.navigationItem.title = viewTitle.uppercaseString

self.inventoryItems = [
InventoryItem(name: "White Bread", expiry: "2014-09-12"),
InventoryItem(name: "Mushrooms", expiry: "2014-09-15"),
InventoryItem(name: "Watermelon", expiry: nil),
InventoryItem(name: "Leftover Thai", expiry: "2014-09-15"),
InventoryItem(name: "Cheddar Cheese", expiry: "2014-09-12"),
InventoryItem(name: "Chicken Breasts", expiry: "2014-09-10"),
InventoryItem(name: "Paprika", expiry: nil),
InventoryItem(name: "Sour Cream", expiry: nil)
]

// Right now this will fail without tableView:cellForRowAtIndexPath
self.tableView.reloadData()
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.inventoryItems.count
}

}

// Sub-classed UITableViewController
class MainTableViewController: UITableViewController {

override func viewDidLoad() {
super.viewDidLoad()

self.tableView.separatorColor = UIColor.clearColor()
self.tableView.contentInset = UIEdgeInsetsZero
}

}

// Data struct for cells
struct InventoryItem {
let name: String
let expiry: String?
}

我知道 Swift 仍然很新,这可能就是为什么我找不到太多关于这个主题的资源的原因,所以如果有人有任何指示,我将非常感谢您的帮助!

最佳答案

您可以在没有 Storyboard的情况下为自定义单元格使用以下代码。只需注册您的并将其与tableViewController一起使用

//Cell.Swift

import Foundation
import UIKit

class Cell : UITableViewCell{

//Do whatever you want as exta customization
}

你的 Controller viewDidLoad

override func viewDidLoad() {
super.viewDidLoad()

// register your class with cell identifier
self.tableView.registerClass(Cell.self as AnyClass, forCellReuseIdentifier: "Cell")
}


//cellForRowAtIndexPath

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:Cell? = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as? Cell
if cell == nil {

cell = Cell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}
//configure your cell custom code
cell.textLabel?.text = @"Your Label Text"
return cell!
}

关于ios - Swift 中的自定义表格 View 单元格,没有 Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25770807/

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