0

セルコントローラーに配線されている UIScrollView を含むカスタム UITableViewCell があります。スクロールビューにテキストを割り当てると、正しいテキストを取得するセル、空白のセル、古いテキストを再表示するセル、テキストの 2 行目または 3 行目でスクロールビューが切り取られるセルがあります。何が起こるかはランダムのようです。ここでタイマーを使用して空白のセルを修正するという提案に従いましたhttp://www.bdunagan.com/2008/12/08/uitextview-in-a-uitableview-on-the-iphone/、しかしそれはしませんでしたヘルプ。cellForRowAtIndexPath メソッドにタイマー コードを配置しました。

私も電話してみました

[cell.textview setNeedsDisplay];

テキストがテキストビューに割り当てられた後ですが、影響はありません。

テキストフィールドまたはラベルを使用すると、すべて問題なく表示されます。ただし、テキストをスクロールできるものが必要です。修正またはより良い方法に関する提案はありますか?

4

1 に答える 1

1

更新:開発者フォーラムでこれを見つけました(特にあなたの問題について言及しています):

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 を更新した後。

于 2009-06-01T16:30:01.910 に答える