1

我想知道是否有人可以解释为什么 UIScrollView 委托中的任何方法都没有被触发。

设置场景。我有一个 UIViewController 被推送到堆栈上。在这个视图中,我制作了 5 个自定义选项卡。在每次点击时,我都有一个功能,其中包含来自 UIViewController/xib 组合的 5 个视图(每个选项卡一个)。

ExercisePhotoView *exercisePhotoView = [[ExercisePhotoView alloc] initWithNibName:@"ExercisePhotoView" bundle:nil];
exercisePhotoView.exercise = self.exercise;
[self.photoView addSubview:exercisePhotoView.view];
[exercisePhotoView release];

在其中一个加载的视图中,我有一个滚动视图,其中包含一些图像(上面的代码块是所述视图)。self.exercise一个 NSManagedObject。图像被很好地加载到滚动视图控制器中并且分页工作。然而,任何 ScrollView 的委托方法都不起作用,例如

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)theScrollView

我已经在我的头文件中包含了对委托的引用,就像这样。

@interface ExercisePhotoView : UIViewController <UIScrollViewDelegate> {
    IBOutlet UIScrollView   *scrollView;
    IBOutlet UIPageControl  *pageControl;

    Exercise                *exercise;
    NSMutableArray          *exerciseImageList; 
}

有什么我遗漏或做错的事情。我无法让任何委托方法在ExercisePhotoView类上触发。

先感谢您。

4

4 回答 4

2

您必须设置self.scrollView.delegate应充当滚动视图委托的对象。

于 2011-01-30T21:19:55.770 回答
1

虽然您已经声明,ExercisePhotoView 实现了 UIScrollViewDelegate 协议,但您还没有通知它作为委托的 UIScrollView 的任何实例

因此,在viewDidLoadExercisePhotoView(或其他适当的方法)中,您需要声明ExercisePhotoView 是特定scrollView 实例的委托:

scrollView.delegate = self;
于 2011-01-30T22:51:03.657 回答
0

记得添加@property (nonatomic, retain) UIScrollView *scrollView;你的标题和@synthesize scrollView;你的.m

于 2011-01-30T22:55:20.983 回答
0

您必须告诉卷轴它的委托人是谁,以便我知道将委托通知发送给谁。

于 2011-01-30T22:56:44.430 回答