我将tableview设置为Subtitle
并设置tableview单元格如下:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as! UITableViewCell
var row = indexPath.row
var section = indexPath.section
if (subtitleExist) {
cell.textLabel!.text = myTitle
cell.detailTextLabel!.text = mySubtitle
}else{
cell.textLabel!.text = myAnotherTitle
cell.detailTextLabel!.text = ""
}
}
然后当我第一次滚动时,结果出现了,没有一些(随机?)单元格的副标题:
在我触摸细胞后,它会出现:
那我怎么解决呢?谢谢!
修改
这是我的完整测试代码:
import UIKit
class ViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var myTableView: UITableView!
var data : [String]!
override func viewDidLoad() {
super.viewDidLoad()
data = []
data.append("I")
data.append("WILL")
data.append("APPEND")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("LOTS")
data.append("OF")
data.append("DATA")
data.append("HERE")
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("CellSubtitle") as? UITableViewCell
if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "CellSubtitle")
}
var row = indexPath.row
cell!.detailTextLabel!.text = ""
if (row >= 7) {
cell!.textLabel!.text = data[indexPath.row]
cell!.detailTextLabel!.text = "My Subtitle Text"
}else{
cell!.textLabel!.text = data[indexPath.row]
}
return cell!
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
答案 0 :(得分:0)
如果要继续手动初始化单元格,可以使用以下出列方法代替。然后,就初始化detailTextLabel而言,你不必这样做。它已内置到单元格中,并且通过指定单元格的样式应为副标题,将为您设置该标签。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CellSubtitle") as? UITableViewCell
var row = indexPath.row
var section = indexPath.section
cell.detailTextLabel!.text = ""
if (subtitleExist) {
cell.textLabel!.text = myTitle
if(mySubtitle.length > 0)
{
cell.detailTextLabel!.text = mySubtitle
}
} else {
cell.textLabel!.text = rowText
}
}
答案 1 :(得分:0)
问题似乎与细胞的可重用性有关。请尝试以下步骤:
$(document).ready(function() {
if ($(.test).is(":selected")) {
$(".test1").prop("disabled", false);
} else {
$(".test1").prop("disabled", true);
}
}
更改为0,然后重置为1. 看看这是否能解决您的问题。