1

私はiOS6を使用しており、iPadアプリケーションでは、ビューのカルーセルと選択したカルーセル項目の詳細をその下のtextViewに表示する必要があります。ユーザーは、クリックするかスクロールして、カルーセル ビューを選択できます。スクロールが終了すると、textView の詳細は、選択されたカルーセル アイテム (説明、概要など) に基づいて詳細を表示する必要があります。私はインデックスを更新することができ、そこにはテキストビューがあります。

- (void)carouselDidEndScrollingAnimation:(iCarousel )carouselスクロールアニメーションがいつ停止するかを知る方法を使用しています。このメソッドは、スクロールがプログラムまたはユーザー主導で停止されたときにトリガーされます。

- (void)carouselDidEndScrollingAnimation:(iCarousel *)carousel
{
    [self setSelectedItemIndex:[carousel currentItemIndex]];
}

インデックスから対応する詳細を取得し、ビューをリロードします。詳細をリロードするようにセッター メソッドを変更しました。インデックスは、デリゲートがトリガーされたときにのみ割り当てられます。

この時点まで、すべてが正常に機能しています。各項目に対応する値を表示できます。すべての項目に常に有効な値があるとは限りません。ただし、ユーザーがカルーセルをドラッグし続けると、値を変更するトリガーがなく、textView の値が変化し続けます。スクロールが停止し、上記のデリゲートがトリガーされると、正しい値が表示されます。

*の値の変更のみがselectedItemIndex、textView の値の変更をトリガーする必要があります。しかし、スクロール中に、いくつかの偽の値が 1 つの textView に表示されます。

- (void)setSelectedMemoIndex:(NSUInteger)selectedMemoIndex
  {
  _selectedMemoIndex = selectedMemoIndex;
  [self didSelectItemAtIndex:_selectedMemoIndex];
  }

textView に値を割り当てる方法

- (void)didSelectItemAtIndex:(NSInteger)index 
   {   //items array is a collection of NSManagedObjects  
   Item *item = self.items[index];  
   self.summaryTextView.text = item.summary;  
   self.descTextView.text = item.desc;  
   }

どんな助けでも大歓迎です

4

1 に答える 1

0

コメントから

コードは良さそうです。問題は、テキストビューで値を設定しているコードのどこかにある可能性があります。スクロールが完了すると変更されるため、おそらくデリゲート メソッドにあります。

于 2013-04-10T12:51:53.787 に答える