2017-06-18 16 views
0

私はUITableViewを持っていて、セルはリモートサービスへのポストコールによって生成されます。 私はUILabelのlineBreakModeプロパティをNSLineBreakByTruncatingTailに設定し、2行目を設定しました。セルxibでは、すべてが正しいと思われます。ここではスクリーンショットです:UILabelは省略記号を生成する必要がありますが動作しません。

enter image description hereenter image description here

これは私がした後、リモートサービスから取得したJSON解析されたテキストを移入するために使用するコードです。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     if (posts.count == 0){ 
      return tableView.dequeueReusableCell(withIdentifier: 
       TableViewCellIdentifiers.emptyCell, for: indexPath) 
     } else { 
      let cell = tableView.dequeueReusableCell(withIdentifier: 
       TableViewCellIdentifiers.postCell, for: indexPath) as! PostCell 

      let post = posts[indexPath.row] 
      cell.userNameLabel.text = post.userName 
      cell.postTextLabel.text = post.text 
      cell.timeLabel.text = post.time 
      cell.distanceLabel.text = post.distance 

      return cell 
     } 
    } 

が、ここでそれは結果であり、それは省略記号を生成しませんが、すべてのものが enter image description here

に問題があることができ、任意のアイデアを覆っていますか?

+0

ラベルに一定の幅(時間ラベルまたは距離ラベルの前の8ポイントなど)を超えることができないという制約を忘れていますか?また、Yの位置や高さについて黄色の警告を確認し、結果を確認することもできます(修正してください)。 – Larme

+0

xibのオレンジ色の線は、何か問題があることを意味します。おそらくフレームだけを設定し、制約は設定しません。 – Sulthan

答えて

0

制約がありません。ラベルの右端から、右側のTimeラベルとDistanceラベルに制約を設定してください。私はすべてのラベルを固定幅にし、関係Equalですべての制約を設定すると、UILabelsはテキストを正しく内側に揃えます。

0

ここで問題となっているのは、指定した幅の制約です。黄色の警告は、実行時にラベルの幅が任意の制限を超えることができることを示します。また、Yの位置や高さが正しく設定されていません。実行時にこれらの2つの制約を設定する必要があります。Labelは、テキストの長さに収まる幅をとります。

関連する問題