2017-10-30 3 views
-2

私はこのようなビューを作成していくつかの長いテキストを表示したいと思います。これのためにいくつかのポッドを持っているが、私はこれをプログラム的にしたい。タップに関する見解は、それについての説明のためのビューを持っています

ありがとうございます。

最初の画像 - >タップする前の画像。

2番目の画像 - >タップ後の表示。

first imagesecond image

+1

あなたは何かを試しましたか?どんな研究ですか?あなたの写真から、それは 'UITableViewCell'を拡張することです。あなたは 'UITableView'と' UITableViewCell'について読むべきです。実際に達成するのはとても簡単です。 –

+0

このようなサードパーティのライブラリを試すこともできます:https://github.com/jeantimex/ios-swift-collapsible-table-section –

+0

あなたがすでに試したことを示してください。 – PGDev

答えて

0

クイック実用的なソリューションを必要とする場合、あなたはこれを試すことができます。

2つのラベルでTableViewCellを作成します、タイトルラベルの高さを保つデフォルトでは、配列内の各セルの高さを維持する固定高さタイトルラベル(の48をしましょう)と説明ラベル(複数行)

デリゲートメソッド「heightForRowAt内部の高さを切り替える

if self.itemHeights[indexPath.row] == UITableViewAutomaticDimension { 
      self.itemHeights[indexPath.row] = 48 
} else { 
      self.itemHeights[indexPath.row] = UITableViewAutomaticDimension 
} 
self.tableView.reloadRows(at: [indexPath], with: .automatic) 

、:あなたは、セルを選択した場合だけでデリゲートメソッドの内部で、(たとえばitemHeights = [48,48,48]

"didSelectRowAtを" タイトルラベルを表示します: "、更新された値を返します高さ

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
     return self.itemHeights[indexPath.row] 

}

注:これはあなたに、ほぼ同じ結果を与えますが、いくつかのぎくしゃくしたアニメーションで回避策です。

関連する問題