2016-07-17 8 views
1

私はUITableViewを使用して親行を選択したときに子行を展開できるようにしました。cellForRowAtIndexPath内のセルを更新できません

これは私の親行である:

enter image description here

そして、私は、行を選択した場合、それが拡大:

enter image description here

私は少しをインデントするために、子行要素を作りたいですそれで本当に下の項目が子供だと思われます。私UITableViewCell

セルにアイコンとタイトルを設定するときに、私はこのコードを追加:

func setData(data: ExpandableCell,indexPath : NSIndexPath) 
    { 

     self.itemImg.image = UIImage(named: data.icon) 
     self.itemTitle.text = data.title 

     if(!data.isParent){ 

      // indent views 
      self.itemImg.frame.origin.x = 53 
      self.itemTitle.frame.origin.x = 85 
     } 

     if(data.childs.count == 0){ 

      // remove the expand - collpase icon when its child row 
      self.expandImg.removeFromSuperview() 
     } 

    } 

を私が持っている問題は、子行が示されている最初の時間は、それがアイコンをインデントしないということですラベル。なお、第2の時間まで働く:子行が示されている

初めて(を動作しませんでした):子行が示されている

enter image description here

セカンド時間(今度は

enter image description here

常に動作するように設定する必要はありますか?私はすでにしていた:SetNeedDisplay()しかし、敷居は同じ動作をしています。

if(!data.isParent){ 

ファインが、何かのdata.isParentが真である:

答えて

1

問題は、あなたのロジックが不完全であるということですか?あなたは何をすべきかを言わない。細胞は再利用されることを忘れないでください。 空のにすでに準備されているセルを準備し、再設定する必要があります。

+0

私はただ修正しますが、私はまだ同じ動作をしています。任意の手掛かり@matt? – VAAA

+0

私は他の解決策を見つけなければなりませんでした、私は、セルに他の2つの要素、インデントの子のための1つのイメージ、およびインデントの子のための1つのイメージを追加し、今はうまくいくようです...本当に奇妙な問題です。それは私にとって意味をなさない。 – VAAA

+0

私が提案したことを本当にしたように私には聞こえません... – matt

関連する問題