tableView.estimatedRowHeight = 90.0
tableView.rowHeight = UITableViewAutomaticDimension
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//ask for a reusable cell from the tableview, the tableview will create a new one if it doesn't have any
let cell = self.tableView.dequeueReusableCellWithIdentifier("DetailCell") as DetailCell
var detail : Detail
detail = Details[indexPath.row]
var paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 15
paragraphStyle.alignment = NSTextAlignment.Right
var attrString = NSMutableAttributedString(string: detail.detailText)
attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range:NSMakeRange(0, attrString.length))
var fontName = cell.myLabel.font.fontName
cell.myLabel.font = UIFont(name:fontName, size: pointSize)
cell.myLabel.attributedText = attrString
return cell
}
@IBAction func pinched(sender: UIPinchGestureRecognizer)
{
pointSize = ((sender.velocity > 0) ? 1 : -1) * 0.5 + pointSize;
if (pointSize < MIN_SIZE)
{
pointSize = MIN_SIZE
}
else if (pointSize > MAX_SIZE)
{
pointSize = MAX_SIZE
}
self.tableView.reloadData()
}
pointSize随着用户的压缩而变化(使用UIPinchRecognizer) myLabel的默认pointSize为17。 当收缩以增加或减少pointSize时,代码可以正常工作。 但是首先滚动时会应用默认大小,然后增加或减小大小,因此在滚动时单元格会产生闪烁效果。
我该如何避免这种情况? 是否已为UITableViewCells
完成任何示例示例