滚动时自定义 UITableViewCell 更改字体 swift
custom UITableViewCell change font when scroll in swift
我有一个自定义 UITableViewCell
,其中我有一个 UILabel
。
这是我的代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(
"PromoCell", forIndexPath: indexPath) as? SchedaCompletaCellTVC // it's my custom tableview cell
if (cell == nil) {
cell = SchedaCompletaCellTVC(style: UITableViewCellStyle.Default,reuseIdentifier:"PromoCell")
}
// Configure the cell...
switch indexPath.row {
case 0:
cell!.valueLabel.text = String(htmlEncodedString: company.name)
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 17.0)
case 1:
cell!.valueLabel.text = String(htmlEncodedString: company.description)
case 2:
cell!.valueLabel.text = "Contatti"
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 15.0)
case 3:
cell!.valueLabel.text = "Indirizzo: \(String(htmlEncodedString: company.address)),\(String(htmlEncodedString: company.city)),\(String(htmlEncodedString: company.province)) "
case 4:
var telString:NSString = String(htmlEncodedString: company.phone)
cell!.valueLabel.text = "Tel: \(telString)"
case 5:
var email = String(htmlEncodedString: company.email)
cell!.valueLabel.text = "Email: \(email)"
case 6:
var sitoweb = String(htmlEncodedString: company.site)
cell!.valueLabel.text = "Sito: \(sitoweb)"
case 7:
cell!.valueLabel.text = "Fax: \(String(htmlEncodedString: company.fax))"
default:
cell!.valueLabel.text = ""
}
return cell!
}
当我向下滚动时,单元格的字体错误并且每次都改变。
希望大家帮帮忙!谢谢。
看这里:
var cell = tableView.dequeueReusableCellWithIdentifier(
"PromoCell", forIndexPath: indexPath) as? SchedaCompletaCellTVC // it's my custom tableview cell
if (cell == nil) {
cell = SchedaCompletaCellTVC(style: UITableViewCellStyle.Default,reuseIdentifier:"PromoCell")
}
您正在重复使用单元格。在某些单元格中,您正在设置字体,而在其他一些单元格中,您没有对字体属性进行任何更改。
switch indexPath.row {
case 0:
cell!.valueLabel.text = String(htmlEncodedString: company.name)
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 17.0)
case 1:
cell!.valueLabel.text = String(htmlEncodedString: company.description)
case 2:
cell!.valueLabel.text = "Contatti"
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 15.0)
case 3:
cell!.valueLabel.text = "Indirizzo: \(String(htmlEncodedString: company.address)),\(String(htmlEncodedString: company.city)),\(String(htmlEncodedString: company.province)) "
case 4:
var telString:NSString = String(htmlEncodedString: company.phone)
cell!.valueLabel.text = "Tel: \(telString)"
case 5:
var email = String(htmlEncodedString: company.email)
cell!.valueLabel.text = "Email: \(email)"
case 6:
var sitoweb = String(htmlEncodedString: company.site)
cell!.valueLabel.text = "Sito: \(sitoweb)"
case 7:
cell!.valueLabel.text = "Fax: \(String(htmlEncodedString: company.fax))"
default:
cell!.valueLabel.text = ""
}
在 3,4,5,6,7 你没有设置字体。在将起作用的那些单元格中设置所需的字体大小。 :)
我有一个自定义 UITableViewCell
,其中我有一个 UILabel
。
这是我的代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(
"PromoCell", forIndexPath: indexPath) as? SchedaCompletaCellTVC // it's my custom tableview cell
if (cell == nil) {
cell = SchedaCompletaCellTVC(style: UITableViewCellStyle.Default,reuseIdentifier:"PromoCell")
}
// Configure the cell...
switch indexPath.row {
case 0:
cell!.valueLabel.text = String(htmlEncodedString: company.name)
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 17.0)
case 1:
cell!.valueLabel.text = String(htmlEncodedString: company.description)
case 2:
cell!.valueLabel.text = "Contatti"
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 15.0)
case 3:
cell!.valueLabel.text = "Indirizzo: \(String(htmlEncodedString: company.address)),\(String(htmlEncodedString: company.city)),\(String(htmlEncodedString: company.province)) "
case 4:
var telString:NSString = String(htmlEncodedString: company.phone)
cell!.valueLabel.text = "Tel: \(telString)"
case 5:
var email = String(htmlEncodedString: company.email)
cell!.valueLabel.text = "Email: \(email)"
case 6:
var sitoweb = String(htmlEncodedString: company.site)
cell!.valueLabel.text = "Sito: \(sitoweb)"
case 7:
cell!.valueLabel.text = "Fax: \(String(htmlEncodedString: company.fax))"
default:
cell!.valueLabel.text = ""
}
return cell!
}
当我向下滚动时,单元格的字体错误并且每次都改变。
希望大家帮帮忙!谢谢。
看这里:
var cell = tableView.dequeueReusableCellWithIdentifier(
"PromoCell", forIndexPath: indexPath) as? SchedaCompletaCellTVC // it's my custom tableview cell
if (cell == nil) {
cell = SchedaCompletaCellTVC(style: UITableViewCellStyle.Default,reuseIdentifier:"PromoCell")
}
您正在重复使用单元格。在某些单元格中,您正在设置字体,而在其他一些单元格中,您没有对字体属性进行任何更改。
switch indexPath.row {
case 0:
cell!.valueLabel.text = String(htmlEncodedString: company.name)
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 17.0)
case 1:
cell!.valueLabel.text = String(htmlEncodedString: company.description)
case 2:
cell!.valueLabel.text = "Contatti"
cell!.valueLabel.font = UIFont(name: "Helvetica-Bold", size: 15.0)
case 3:
cell!.valueLabel.text = "Indirizzo: \(String(htmlEncodedString: company.address)),\(String(htmlEncodedString: company.city)),\(String(htmlEncodedString: company.province)) "
case 4:
var telString:NSString = String(htmlEncodedString: company.phone)
cell!.valueLabel.text = "Tel: \(telString)"
case 5:
var email = String(htmlEncodedString: company.email)
cell!.valueLabel.text = "Email: \(email)"
case 6:
var sitoweb = String(htmlEncodedString: company.site)
cell!.valueLabel.text = "Sito: \(sitoweb)"
case 7:
cell!.valueLabel.text = "Fax: \(String(htmlEncodedString: company.fax))"
default:
cell!.valueLabel.text = ""
}
在 3,4,5,6,7 你没有设置字体。在将起作用的那些单元格中设置所需的字体大小。 :)