[英]uitableview height does not change dynamically in swift ios?
我很麻煩。我有一個城市列表,我想在UITableView
顯示城市,並且由於我不想顯示滾動而禁用了UITableView的滾動。
當我動態更改為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
}
}
在上述代碼的預覽下方。
由於此答案所需的解釋非常詳細。
請關注我的另一個答案“使用約束移動視圖”以了解如何更新布局約束。
根據你關於如何連接NSLayoutConstraint變量和高度限制的評論? 如下:
UIView
。 單擊Constraints圖標以查看所有約束。 現在,在下圖中,我僅添加了一個約束,您可能會發現更多。 檢查您更改了哪個約束的屬性。 heightConstraint
。 如果您的所有單元格具有相同的外觀,則可以使用原型單元格:
要么
您也可以使用
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 42.0
}
如果您動態調整高度單元格,則此功能非常完美。
您只需要使用: beginUpdates()
和endUpdates()
使其起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.