2011-12-05 2 views
2

안녕하세요, 사용자가 앱을 스크롤 할 때 함수를 트리거하려고합니다.UIScrollViewDelegate가 작동하지 않습니다.

- (void)viewDidLoad { 
[super viewDidLoad]; 
self.scroll = [[UIScrollView alloc] init]; 
scroll.delegate = self; 
[scroll setBackgroundColor:[UIColor whiteColor]]; 

NSInteger nbView = 3; 


scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)]; 

for(int i = 0; i < nbView; i++) { 
    CGFloat xOrigin = i * self.view.frame.size.height; 

    UIView * vue = [[UIView alloc] initWithFrame:CGRectMake(0, xOrigin,  self.view.frame.size.width, self.view.frame.size.height)]; 
    vue.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1]; 
    [scroll addSubview:vue]; 
    [vue release]; 

} 
scroll.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height * nbView); 
[scroll setScrollEnabled:YES]; 
[self.view addSubview:scroll]; 

그리고 I를 : 여기에

내가 쓴있는 viewDidLoad에서 내가하는 .m에,

@interface CircleViewController : UIViewController <UIScrollViewDelegate> { 
    UIScrollView *scroll; 
} 

@property (retain, nonatomic) UIScrollView * scroll; 

@end 

그런 다음 UIScrollViewDelegate를 구현하는 클래스의 MyViewController를 정의

내 코드입니다 방아쇠를 정의하십시오 :

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    NSLog(@"test"); 
} 

앱을 실행할 때 스크롤 할 수 있지만 scrollViewDidScroll이 호출되지 않습니다.

답변

6

스크롤보기를 두 번 할당하는 것은 문제의 원인이 될 수 있습니다 ... 일단 할당 한 다음 위임자를 설정해야합니다.

+0

와우 넥스 Ankit, 나는 그것을 보지 못했다. 어리 석다. – flocks

+0

스크롤의 두번째 할당은 첫번째 것을 오버라이드하고, 델리게이트는 사라진다. alloc이 새로운 스크롤 뷰를 생성 할 때 scroll = [[UIScrollView alloc] ...] 대신에 [scroll setFrame :]을 사용하고 싶을 것입니다 – Chaosphere2112