私はSwiftにiOSアプリケーションを作成していました。私はテーブルビューシーンを作成しましたが、最初のサブビューのみを表示しています。コードをできるだけシンプルにしようとしました。 2つのラベルを持つテーブルビューセルを作成しましたが、最初のラベルだけが表示されます。コードは以下の通りです。 2番目のラベルが表示されないのはなぜですか?私のAutoLayoutの制約は間違っていますか?ありがとう!プログラムで作成されたUITableViewCellは、AutoLayoutで最初のサブビューのみを表示します
import UIKit
class TestCell: UITableViewCell {
let viewsDict: [String : UILabel] = [
"first": UILabel(),
"second": UILabel(),
]
override func awakeFromNib() {
viewsDict["first"]!.text = "first"
viewsDict["second"]!.text = "second"
viewsDict["first"]!.translatesAutoresizingMaskIntoConstraints = false
viewsDict["second"]!.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(viewsDict["first"]!)
contentView.addSubview(viewsDict["second"]!)
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[first]-[second]-|", options: [], metrics: nil, views: viewsDict))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[first]", options: [], metrics: nil, views: viewsDict))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[second]", options: [], metrics: nil, views: viewsDict))
}
}
class TableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
}
}
IBでは、プロトタイプセルをドラッグして高さを高くし、2番目のサブビューを表示します...高さを自動的に調整できるかどうかはわかりません。 – user3323258