これに対する答えはおそらく私の鼻のすぐ下にありますが、私には見えません。ここにいる誰かが助けてくれるかもしれません。
垂直スクロールを可能にする scrollView があります。私はそれを設定しました:
[clefScrollView addSubview:clefView];
[clefScrollView setContentSize:CGSizeMake(clefView.frame.size.width, clefView.frame.size.height)];
clefScrollView.showsVerticalScrollIndicator = YES;
clefScrollView.showsHorizontalScrollIndicator = NO;
clefScrollView.delegate = self;
UIScrollViewDelegate プロトコルをサポートするために、同じファイルに次のメソッドが含まれています。
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"%f %f", scrollView.contentOffset.y, scrollView.contentSize.height);
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidEndDecelerating");
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidEndScrollingAnimation");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScroll");
}
さらに、私のクラスの .h ファイルにはプロトコルが含まれています。
@interface ClefNotesViewController : UIViewController <UIActionSheetDelegate,UIScrollViewDelegate,DoneWithVCDelegate> {
問題は、次の 2 つが呼び出されないことです。
-scrollViewDidEndDecelerating
-scrollViewDidScroll
他の 2 つのメソッドは、異なるイベントに応答して呼び出されます。2 つのプロトコル メソッドが呼び出されていることを考えると、デリゲートを自分自身に正しく設定したと仮定します。それで、問題は何ですか?
ありがとう!
更新: 問題は見つかりましたが、解決方法はまだわかりません。私のクラスは 2 つのファイルにまたがっています。2 番目のファイルでは、別の scrollView が -scrollViewDidEndDecelerating -scrollViewDidScroll を実装しています。
問題は、同じクラスで、2 つの異なる UIScrollView に対して 2 つの異なるメソッド セットを定義するにはどうすればよいかということです。
同じデリゲート メソッドで 2 つの scrollView を処理しようとすることもできますが、scrollView のファイルでデリゲートの各セットを保持することができないため、これは見苦しいものです。クラスを分割することもできました。別の方法はありますか?