2017-03-05 76 views
0

我想在輸入額外文本時擴展我的單元格。我不想在最後「......」我想單元格自動展開。我採取了以下兩個步驟,但它不起作用。表格單元格中的自動行高度

enter image description here

步驟1

 self.tableView.dataSource = self 
     self.tableView.delegate = self 

     tableView.estimatedRowHeight = 44 
     tableView.rowHeight = UITableViewAutomaticDimension 

步驟2

 messageLabel.numberOfLines = 0 

出於某種原因,我的手機是不是擴大我究竟做錯了什麼?

import UIKit 
import Foundation 


struct postStruct { 
    let username : String! 
    let message : String! 
    let photoURL : String! 
} 



class GeneralChatroom: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate { 

    @IBOutlet weak var messageTextField: UITextField! 
    @IBOutlet weak var tableView: UITableView! 
    var generalRoomDataArr = [postStruct]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 


     self.tableView.dataSource = self 
     self.tableView.delegate = self 

     tableView.estimatedRowHeight = 44 
     tableView.rowHeight = UITableViewAutomaticDimension 





    } 


    @IBAction func backButtonPressed(_ sender: UIButton) { 
     self.performSegue(withIdentifier: "BackToRoom", sender: nil) 
    } 


    //Message Send button is pressed data uploaded to firebase 
    @IBAction func sendButtonPressed(_ sender: UIButton) { 

     let message : String = self.messageTextField.text! 



    } 



    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 


    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return generalRoomDataArr.count // your number of cell here 
    } 


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 




     let cell = tableView.dequeueReusableCell(withIdentifier: "cell") 



     //Set message label to display message 
     let messageLabel = cell?.viewWithTag(2) as! UILabel 
     messageLabel.text = generalRoomDataArr[indexPath.row].message 
     messageLabel.numberOfLines = 0 


     // your cell coding 
     return cell! 
    } 





}//END CLASS 

UPDATE: 我目前的制約因素,但是我的動態細胞生長不工作。我的手機仍然顯示「...」任何人都可以幫我理解爲什麼?我嘗試重置爲建議的約束,但它不起作用。

enter image description here

enter image description here

+0

哎@nil是ü與使用自動佈局這樣做呢? –

+0

不,我不相信我是 – nil

+0

請通過自動佈局,這將使這項任務更容易。 –

回答

0

請確保您已經自動佈局爲自定義的UITableViewCell。更改estimatedRowHeight,試試這個:

tableView.estimatedRowHeight = 200 
+0

如果您已在自己的單元格中添加自定義標籤,請添加約束/自動佈局。正如我正在使用普通的UITableViewCell,它對我有用:) –

+0

如果你添加了一個標籤,選擇標籤,插入並說:「重置爲建議的約束」 –

+0

你可以進入更詳細的類似新的快速 – nil

0

可以使用的UITableView的委託方法:

func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat 
{ 
     return .AutomaticDimension 
} 
func tableView(_ tableView: UITableView,estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat 
{ 
     return 60 
} 

但首先你必須在標籤WRT的自動佈局限制設置爲TableViewCell的內容視圖。

0

雨燕2.3

// MARK: - TableViewDelegate Setup 

extension NotificationVC : UITableViewDelegate,UITableViewDataSource { 
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension 

    } 

    func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension 

    } 

    } 
+0

我發佈了一個當前問題的更新,有人可以幫我理解這個問題。 – nil

+0

你可以發佈具有特定問題的項目,你現在在git中,並與我分享 –

相關問題