2017-10-11 9 views
0

私のUITableViewCellがうまく動作しています。私は、画像ごとにボタンのセットを明らかにするために、セルの高さを拡大するために、メニューボタンをクリックすることができるようにしたい:ボタンを表示するために垂直方向に拡張可能なUITableViewCellを処理できません

Image

次のように私は、コードを持っている:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    if indexPath.row == Globals.selectedRowIndex { 
     return 335 
    } else { 
     return 125 
    } 
} 

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) { 
    if indexPath.row == Globals.selectedRowIndex { 
     Globals.selectedRowIndex = -1 
    } else { 
     Globals.selectedRowIndex = indexPath.row 
    } 
    tableView.reloadData() 
} 

ボタンはすべて、より小さいサイズで一緒に押しつぶされる。私は彼らがただの視野から切り取られると思った。私はこれらを持って回ることができると思う。クリックするとが隠れる。私はまだこれを試していない。

私の制約がセル内の何にも利用できないように見えるので、それらの高さも設定できません。どうしてか分かりません。自動サイズ設定はできますが、制約は設定できません。

これを行うには、おそらく完全に良い方法があると思います。どんな指針も大変ありがとうございます。

+0

このライブラリを試してください:https://github.com/younatics/ExpandableCell –

+0

@Manigandasaravananこれを確認してください。ライブラリを探すことができなかったのを忘れてしまった – Sean

+0

私はこの質問に何度も答えました。そのためにgithubのサンプルプロジェクトを作ってみました:https://github.com/bavarskis/ExpandingTableViewCell.git –

答えて

0

最初にtableCountまで反復し、falseを割り当てます。細胞を拡大しながら割り当てTrue.OtherwiseがFalse

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     selectedIndex[indexPath.row] = indexPath.row; 
     if isSelected[indexPath.row] 
     { 
      isSelected[indexPath.row] = false 
      self.tableView.reloadRowsAtIndexPaths([tableView.indexPathForSelectedRow!], withRowAnimation: .Fade) 

     } 
     else 
     { 
      isSelected[indexPath.row] = true 
      self.tableView.reloadRowsAtIndexPaths([tableView.indexPathForSelectedRow!], withRowAnimation: .Fade) 

     } 
} 
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 
       if isSelected[indexPath.row] 
       { 
        return 275.0 
       } 
       else 
       { 
        return 110.0 
       } 

} 
を割り当て、その後

isSelected = [false, false, false, false, false] 

:あなたは5つの細胞手段を持っている場合の例としては、例えば

for i=0;i<tablecount;i++ 
{ 
    self.isSelected.append(false) 
} 

は、次のような値を持つことになります

関連する問題