前提・実現したいこと
レストランの店舗紹介ページをTableViewのStaticCellを用いて開発しています。
特定のStaticCellでUILabelの高さに合わせてセルの高さを可変に設定するようにしたいです。
発生している問題
いろいろと検索をしたところ、動的セルの場合の情報は多々見つかるのですが、静的セルの場合の情報はあまりありませんでした。
AutoLayoutでラベルの高さを設定したり、storyboardのcellの設定からRow HeightをAutomaticにしたり、コードからUITableView.autoDemensionを設定したりしました。
しかし、どれも望んだような動作ができませんでした。
該当のソースコード
Swift
1import UIKit 2import Firebase 3 4class ShopInfoTableViewController: UITableViewController { 5 6 @IBOutlet weak var shopImageCell: UITableViewCell! 7 @IBOutlet weak var shopImageView: UIImageView! 8 @IBOutlet weak var shopDescription: UILabel! 9 @IBOutlet weak var shopGenre: UILabel! 10 11 var shopImageName:UIView! 12 var shopArray:[ShopFullData] = [] 13 var shopUniqueKey:String = "" 14 var shopName:String = "" 15 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 dataSubscribe() 19 20 self.navigationItem.title = shopName 21 22 23 } 24 25 func dataSubscribe() { 26 //RealtimeDatabaseの参照URLを取得 27 let ref = Database.database().reference() 28 29 //データ取得開始 30 ref.child("shopdata").child("(shopUniqueKey)").observeSingleEvent(of: .value, with: {(snapshot) in 31 //子階層をまとめて取得 32 let shopData = snapshot.value as? Dictionary<String, AnyObject> 33 34 //Topイメージを処理 35 let shopImage = shopData?["topimage"] as? [String] 36 37 //説明文処理 38 let remoteShopDescription = shopData?["description"] as? String 39 self.shopDescription.text = remoteShopDescription 40 self.shopDescription.lineBreakMode = .byWordWrapping 41 42 43 let genre = shopData?["genre"] as? String 44 self.shopGenre.text = genre 45 46 }, withCancel: nil) 47 } 48}
試したこと
AutoLayoutで優先度を変更したりラベルの下の制約をGrater than or Equalにしたりしました。
補足情報(FW/ツールのバージョンなど)
Xcode 12.5
あなたの回答
tips
プレビュー