2016-09-09 5 views
1

問題文1:以下に示すように、2つのカスタムセルテキストを複数行同時に同時に揃えることができません。 enter image description hereUITableViewで同時に複数行のテキストの配置を調整する方法

ここでは、複数行セルの両方のセルの内容が同じ開始行の先頭行にないことがわかります。何の複数行のコンテンツが存在しない場合には、両方のセルの内容が適切に同一直線上に並んでいるか

enter image description here

あなたが見ることができ、下図のよう

は、それは、okです。

問題文2:セルが大きいコンテンツを持っている場合は、以下の

enter image description here 以下のようにそして、もう一つの問題があるが、それはそれは小さなフォントサイズを取得することをするのではなく、高さだ増加しません私のコード化したものです。このようにして、複数行のカスタムセルを管理しました。私が知っている

func tableView(tableViewData: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    { 

     let cell = tableViewData.dequeueReusableCellWithIdentifier("cell")! as! StudentCell 

     if indexPath.row < self.mMeaningArray.count 
     { 
      cell.lblMeaning1.text = self.mMeaningArray[indexPath.row] 
     } 
     else 
     { 
      cell.lblMeaning1.text = "" 
     } 
     if indexPath.row < self.hMeaningArray.count 
     { 
      cell.lblMeaning2.text = self.hMeaningArray[indexPath.row] 
     } 
     else 
     { 
      cell.lblMeaning2.text = "" 
     } 

     self.allowMultipleLines(cell) 

     cell.lblMeaning1.layoutIfNeeded() 
     cell.lblMeaning2.layoutIfNeeded() 

     return cell 
    } 

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
    { 

     return UITableViewAutomaticDimension 
    } 

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

    func allowMultipleLines(tableViewCell:UITableViewCell) 
    { 
     tableViewCell.textLabel?.numberOfLines = 0 
     tableViewCell.textLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping 
     tableViewCell.textLabel?.sizeToFit() 
    } 

、それはコンテンツごとに、そのフォントサイズを調整しているが、私はそれが複数行で固定フォントサイズである必要があり、同時にそれが適切にテキストを揃えなければならないことを望みます。

さまざまなサイトで検索しましたが、&はスタックオーバーフローに関する複数の質問を参照していますが、この状況では解決策が見つかりませんでした。

+0

こんにちは、あなたは自動レイアウト – Sabs

+1

を使用しているはい、私はちょうど私が答えを投稿します、待って自動レイアウト –

+0

[OK]を使用しています。 – Sabs

答えて

0

StoryBoardでAutoLayoutを使用しているソリューション。

1)行の数を0に、テキストの配置をLeftに設定します。

Image 1

2)は、高さの制約を設定します。

Image 2

3)の高さの制約が関係でなければならない - 以下で

Image 3

4)cellForItemAtIndexPath法の内部にsizetofitを追加

labelname.sizeToFit()

5)それはそうです。今度はこのような結果が得られます。わかりやすくするために、ラベルbackgroundcolorを青色に設定しました。

Image 4

+0

これがうまくいかない場合は、次に試してみてください。http://stackoverflow.com/questions/1054558/vertically-align-text-to-top-within-a-uilabel – Sabs

+0

いいえ、動作しません。 –

+0

上記URLをお試しください。 – Sabs

関連する問題