uitableview的高度在swift中不会dynamic变化?
我有麻烦了。我有一个城市列表,我想在UITableView
显示城市,我禁用了UITableView的滚动,因为我不想显示滚动。
当我dynamic更改为UITableView的高度时,它不会更改,UITableView不会显示所有城市。 在代码下面。 请看看。
import UIKit class FlightDetailsOneWayViewController: UIViewController { var flightDetailArr:[FlightDetailsOneWay] = [FlightDetailsOneWay]() @IBOutlet var tableView: UITableView! @IBOutlet var scrollview: UIScrollView! override func viewDidLoad() { super.viewDidLoad() flightDetailArr.append(FlightDetailsOneWay(depCity: "London")) flightDetailArr.append(FlightDetailsOneWay(depCity: "China")) flightDetailArr.append(FlightDetailsOneWay(depCity: "Singapore")) flightDetailArr.append(FlightDetailsOneWay(depCity: "Dubai")) self.tableView.scrollEnabled = false var cellHeight = CGFloat(self.tableView.rowHeight) var totalCity = CGFloat(flightDetailArr.count) var totalHeight = cellHeight * totalCity self.tableView.frame.size.height = CGFloat(totalHeight) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { return flightDetailArr.count } func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { let cell:FlightDetailsCell = tableView.dequeueReusableCellWithIdentifier("FlightDetail") as FlightDetailsCell let flight = flightDetailArr[indexPath.row] cell.setCell(flight.depCity) return cell } } class FlightDetailsOneWay { var depCity = "" init(depCity: String) { self.depCity = depCity } } class FlightDetailsCell: UITableViewCell { @IBOutlet var depCity: UILabel! override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } func setCell(depCity: String) { self.depCity.text = depCity } }
低于上述代码的预览。
正如对这个答案所要求的解释非常详细。
按照我的另一个答案“移动视图的约束”来了解如何更新布局约束。
并根据您的评论关于如何连接NSLayoutConstraintvariables与高度约束? 如下:
- 转到故事板。
- select你添加了约束的
UIView
。 单击约束图标查看所有约束。 现在在下面的图片中,我只添加了一个限制,你可能会发现更多。 检查你有哪些限制改变了它的属性。
- 现在点击视图控制器,然后点击显示连接检查器 。 在这里你可以看到你的视图控制器中定义的所有IBOutlets。 如下图所示,为了简单起见,我只创build了一个IBOutlet,它是
heightConstraint
。
- 这就是你如何添加连接到约束variables。
如果您的所有单元格都具有相同的外观,则可以使用原型单元格:
一个完整的教程,使用原型单元格进行项目
要么
第二个更快的阅读
你也可以使用
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 42.0 }
如果您dynamic调整高度单元格的大小,此function是完美的。
你只需要使用: beginUpdates()
和endUpdates()
使其工作。
- Facebook的注销是不是在新的SDK V.4.1.0在iOS中工作?
- AWS:如何针对Cognito Pool正确authentication用户并将其用于Cognito联合身份authentication?
- 什么是SCNVector3组件的types? CGFloat或Float?
- 在协议声明中,`:class`是做什么的?
- Swift /如何使用popViewController调用委托
- 在运行期间dynamic创build核心数据实体
- Swift – 如何将自定义字段添加到Google Maps SDK中的标记?
- RealmSwift导入错误
- iOS Swift – 将.wav文件合并并转换为.mp3