Uitableview单元格动态高度

时间:2016-04-10 06:11:46

标签: ios objective-c iphone xcode swift

我在tableview中使用两个自定义单元格。第一个单元格包含两个标签。第二个单元格包含标签和视图(GMSMAPVIEW的子类)。我已将以下代码用于动态单元格高度。

TableView.rowHeight = UITableViewAutomaticDimension
TableView.estimatedRowHeight = 160.0

我为所有细胞元素设置了适当的约束。我面临的问题是:第一个细胞是完美的。但是第二个单元格没有向我显示mapView。(意味着第二个单元格的高度减少到44)。这隐藏了我在该单元格中的mapview。我错过了什么吗?

这是我的tableview的屏幕截图: enter image description here

基本信息单元格是有问题的单元格。基本信息标签的约束是:enter image description here

mapView的约束是:enter image description here

3 个答案:

答案 0 :(得分:1)

首先,您必须在viewDidLoad

中编写此代码
tableView.estimatedRowHeight = 160
tableView.rowHeight = UITableViewAutomaticDimension

接下来,检查xib中的约束。确保没有错误。

然后,如果您看不到地图,请检查您是否拥有Google Dev Console中的有效API密钥,并将其放在appDelegate中,如下例所示:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    GMSServices.provideAPIKey("MYAp1KEy-348234239423949294239");
    return true
}

您可以在official documents

中找到更多信息

如果您在放置标记后更新地图视图时遇到问题,可以按照官方指南Google Maps SDK for iOS

进行操作

PS:您可以按照此分步指南检查您是否正确完成了关于快速谷歌地图项目的所有步骤: Google Maps iOS SDK Tutorial: Getting Started

答案 1 :(得分:0)

更改如下序列。先调用estimatedRowHeight。

TableView.estimatedRowHeight = 160.0
TableView.rowHeight = UITableViewAutomaticDimension

从viewDidAppear重新加载表数据,如

[TableView reloadData];
TableView.reloadData() //for swift

答案 2 :(得分:0)

您是否可以尝试在 viewDidLoad()

中更改代码中的行序列
tableView.estimatedRowHeight = 160
tableView.rowHeight = UITableViewAutomaticDimension