2009-06-01 2 views
0

セルコントローラに配線されたUIScrollViewを持つカスタムUITableViewCellがあります。スクロールビューにテキストを割り当てると、一部のセルが正しいテキストを取得し、一部が空白になり、古いテキストが再表示され、2行目または3行目にスクロールビューがスクロールされます。何が起こるかはランダムに見えます。空のセルを修正するためにタイマーを使用するという提案をここに続けましたが、http://www.bdunagan.com/2008/12/08/uitextview-in-a-uitableview-on-the-iphone/しかし、それは役に立たなかった。私は、cellForRowAtIndexPathメソッドにタイマーコードを配置しました。UITableCellViewのUIScrollView、セルが更新されない

私はまた、テキストの後

[cell.textview setNeedsDisplay]; 

を呼び出して試してみたのTextViewに割り当てられているが、それはいずれかが影響を与えていません。

テキストフィールドやラベルを使用すると、すべてが問題なく表示されます。しかし、私はテキストをスクロールできるものが必要です。修正や改善のための提案はありますか?

答えて

1

更新:DEVフォーラムでこれを見つけた(特にあなたの問題は言及):

https://devforums.apple.com/message/38944#38944

私はそれはいくつかのより詳細な情報を持っているリンクをたどるでしょう。

// view controller 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    NSArray*  visibleCells = [self.tableView visibleCells]; 

    for (UITableViewCell* cell in visibleCells) 
    { 
      if ([cell.reuseIdentifier isEqualToString:kTextViewCellID]) 
      { 
       [(MTextViewCell*)cell refresh]; 
      } 
    } 
} 

// MTextViewCell 


- (void)refresh 
{ 
    // mucking with the contentOffset causes the textView to redraw itself 
    CGPoint  contentOffset = mTextView.contentOffset; 
    CGPoint  contentOffset1 = { contentOffset.x, contentOffset.y + 1.0f }; 

    mTextView.contentOffset = contentOffset1; 
    mTextView.contentOffset = contentOffset; 
} 

呼び出してみてください。

[tableView reloadData]; 

あなたはすべてのtextViewsを更新した後。

+0

cellForRowAtIndexPathでtextViewsが更新されます。私は[tableView reloadData]を呼び出してみました。そこには影響はなかった。 – 4thSpace

+0

リターンセルの直前。私はNSLog(@ "\ nrow =%d textview.text:%@"、row、cell.textview.text)を実行します。それは常に正しい値を持っています。しかし、それを表示することはほとんどありません。通常、セルは空白です。 – 4thSpace

+0

テーブルをスクロールすると、スクロールすると値が更新されますか? –

関連する問題