【发布时间】:2015-12-16 22:20:43
【问题描述】:
我想为 iOS 构建一个新闻应用程序,其中每篇文章都被分成类别并显示在表格视图中。因此,如果一篇文章有 2 个类别(例如:编码和编程),那么显示这篇文章的单元格也应该有 2 个按钮,每个类别一个。如果我添加没有文本的按钮,那么表格视图效果很好。但是,如果我为按钮添加标题,那么在滚动几次之后,应用程序就会开始滞后。
这是生成按钮的代码:
func createHashtagButtonsWith(var categories categories: Array<JSON>, cell: ExploreTableViewCell)
{
var x: CGFloat = 0;
var y: CGFloat = 0;
for( var i = 0; i < hashtags.count; i++){
let size = categories[i].stringValue.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(13.0)]);
if (x + size.width + 16 > cell.categoryView.frame.size.width){
x = 0;
y = size.height + 10;
cell.categoryView.frame.size.height = cell.categoryView.frame.size.height + size.height + 12;
}
let categoryButton : UIButton = UIButton(frame: CGRect(x: x, y: y, width: size.width + 16, height: size.height + 8));
categoryButton.setTitle("\(categories[i].stringValue)", forState: .Normal);
categoryButton.backgroundColor = UIColor.flatBlueColorDark();
categoryButton.layer.masksToBounds = true;
categoryButton.layer.cornerRadius = 3;
cell.categoryView.addSubview(categoryButton);
x += size.width + 24;
}
}
我从 tableView willDisplayCell 调用这个方法
我还使用了这篇 perfect smooth scrolling in uitableviews 文章中的一些技巧来增强表格视图
知道为什么当我向按钮添加标题时应用程序开始滞后吗?
【问题讨论】:
标签: ios swift uitableview uibutton