我正在尝试学习Obj-C和iOS编程,但还是很新的.我决定尝试制作一个简单的Reddit客户端应用程序.我试图在UITableView中显示首页帖子,每个帖子都由自己的单元格表示.
在单元格中,我是如何设置标题的:
cell.textLabel.numberOfLines = 0; cell.textLabel.text = [[tempDictionary objectForKey:@"data"] objectForKey:@"title"]; [cell.textLabel sizetoFit];
如何使我的单元格自动调整其高度以适应更长的标题标签,而不会与其他单元格或详细文本标签相交?
感谢您的任何帮助!
解决方法
对于新的iOS 8,有一个新的方法来使这个简单.
有一个新的参数可以计算您的自动布局约束的单元格高度.这是UITableViewAutomaticDimension.您可以在视图控制器的viewWillAppear方法中使用它.
目标C:
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.tableView.estimatedRowHeight = 70.0; // for example. Set your average height self.tableView.rowHeight = UITableViewAutomaticDimension; [self.tableView reloadData]; }
迅速:
override func viewWillAppear(animated: Bool) { self.tableView.estimatedRowHeight = 70 // for example. Set your average height self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.reloadData() }
工作很好,就像你想要的那样.对于我来说,我在viewDidLoad中添加高度的东西,并在viewWillAppear中留下reloadData().还有一个很有用的source.
从文档:rowHeight的默认值为UITableViewAutomaticDimension.我现在离开代码,但是请记住,您不需要在iOS 8中设置行高.