gpt4 book ai didi

ios - 访问自定义表格单元格标签

转载 作者:行者123 更新时间:2023-11-28 13:20:50 25 4
gpt4 key购买 nike

我在表格单元格中创建了两个自定义标签,以便能够根据其内容动态调整单元格的大小。我首先尝试使用“字幕”样式,效果很好,只是单元格没有按照我想要的方式调整大小,而且看起来真的很乱。

我的问题是:我如何访问这些标签,以便将我的值从我的 API 附加到它们?

查看 Controller 代码:

import UIKit

class nyheterViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, APIControllerProtocol {

@IBOutlet weak var nyheterTableView: UITableView!
@IBOutlet weak var titleLabel: UILabel!

var searchResultsData: NSArray = []
var api: APIController = APIController()

func JSONAPIResults(results: NSArray) {
dispatch_async(dispatch_get_main_queue(), {
self.searchResultsData = results
print(self.searchResultsData)
self.nyheterTableView.reloadData()
})
}

override func viewDidLoad() {
super.viewDidLoad()

var APIBaseUrl: String = "http://*.se/*/*.php"
var urlString:String = "\(APIBaseUrl)"

//Call the API by using the delegate and passing the API url
self.api.delegate = self
api.GetAPIResultsAsync(urlString, elementName:"news")
}

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

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//print(self.searchResultsData.count)
return self.searchResultsData.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier: String = "nyheterResultsCell"


let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell

//nyheterTableViewCell.cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier);

//Create a variable that will contain the result data array item for each row
var cellData: NSDictionary = self.searchResultsData[indexPath.row] as NSDictionary
//Assign and display the Title field
var releaseDate: String = cellData["date"] as String
var titleVar: String = cellData["title"] as String
var titleMix: String = "\(titleVar)" + " - " + "\(releaseDate)"

cell.textLabel?.text = titleMix //textLabel worked out fine using "Subtitle" style.

// Get the release date string for display in the subtitle

cell.detailTextLabel?.text = cellData["content"] as String? //Same

return cell
}
}

我知道如果不以某种方式将它们连接到 ViewController,我将无法访问这些标签。创建到 ViewController 的导出会生成一个错误,提示我无法使用从原型(prototype)单元格到 ViewController 的连接。因此,我创建了一个名为 nyheterTableViewCell 的新类,我将其连接到表格单元格并将 socket 连接到我的标签。

nyhterTableViewCell 代码:

import UIKit

class nyheterTableViewCell: UITableViewCell {

@IBOutlet weak var nyhetLabel: UILabel!
@IBOutlet weak var titleLabel: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

}

我是 Swift 编程和 Xcode 的初学者。

干杯!

最佳答案

您不需要连接到 View Controller 的标签。您的自定义表格 View 单元格示例看起来是正确的。

要访问标签属性,您需要更改行

让 cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell

让 cell: nyheterTableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as nyheterTableViewCell

关于ios - 访问自定义表格单元格标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964396/

25 4 0