0

두 개의 UIScrollViews, aScroll 및 bScroll이 있습니다. 그리고 bScroll은 aScroll의 서브 뷰입니다. 내가 직면하고있는 문제는 bScroll에서 드래그하고 aScroll에 영향을주지 않겠다는 것입니다. 누군가 나를 도와 줄 수 있습니까 ?? 감사합니다. .두 개의 UIScrollViews를 끌기

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
UIScrollView *aScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 50, 400, 400)]; 
aScroll.backgroundColor = [UIColor grayColor]; 
aScroll.contentSize = CGSizeMake(401, 401); 
[self.view addSubview:aScroll]; 
[aScroll release]; 

UIScrollView *bScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(75, 75, 150, 150)]; 
bScroll.backgroundColor = [UIColor lightGrayColor]; 
bScroll.contentSize = CGSizeMake(500, 500); 
[aScroll addSubview:bScroll]; 
[bScroll release]; 

UILabel *bLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 30, 30)]; 
bLabel.text = @"B"; 
[bScroll addSubview:bLabel]; 
[bLabel release]; 

UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 250, 100, 40)]; 
aLabel.text = @"A"; 
[aScroll addSubview:aLabel]; 
[aLabel release]; 
} 
+0

이것은 샘플 코드입니다. bLable이 가장자리에 닿으면 aLabel이 함께 끌 것입니다. 이것은 내가 원하는 것이 아니며 어떻게해야합니까 ?? – user1552201

답변

0

내 생각 엔 당신이 scrollViewWillBeginDragging:와 접촉을 감지해야 할 것입니다 bScroll 당신이 aScroll의 속성을 설정할 수 있습니다 이동 한 경우 :

if([scrollView isEqual: bScroll]) 
aScroll.scrollEnabled = NO; 

나중에 운동을 복원하려면, 당신은 scrollViewDidEndDecelerating:

를 사용할 수 있습니다
aScroll.scrollEnabled = YES; 

이들이 대리자 메서드라는 것을 기억하십시오. 최소한 bScroll 대리자를 ViewController으로 설정해야합니다. 희망이 도움이됩니다.

+0

두 개의 UIScrollViews가 다른 UIViewController에 있다면 어떻게해야합니까? – user1552201

+0

시도했지만 실패했습니다. – user1552201