이 응용 프로그램을 개발하려고하는데 정말 힘들었습니다. 이미지 필터 역할을하는 UIScrollViews 집합을로드하려면 UISegmentedControl을 사용하려고합니다.UISegmentedControl 및 switch 문 관련 문제
UIScrollViews에 큰 문제가있는 것을 제외하면 (이유는 새 세그먼트가 각 세그먼트에서 개별적으로 만들어 짐), 세그먼트 1을 클릭하면 모든 6 개의 UIScrollViews가로드되고 첫 번째 스크롤 만 허용됩니다. 마지막 세그먼트 만 선택하면 UIScrollView가로드됩니다 ...
나는 정말 어떤 제안이 좋지 않은지 알지 못하므로 어떤 제안이 좋을 것입니다!
정말 감사합니다,
로렌스
~~~~ 코드 ~~~
- (void)layerSelected:(id)sender
{
int index = filterControl.selectedSegmentIndex;
switch (index)
{
case 0: if (scroll == nil)
{
scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll.pagingEnabled = YES;
scroll.delaysContentTouches = NO;
scroll.userInteractionEnabled = YES;
NSInteger viewCount = 15;
for (int i = 0; i < viewCount; i++)
{
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll addSubview:filterViewOverlay];
[filterViewOverlay release];
}
scroll.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.scroll setContentOffset:currentPos1];
[self.view addSubview:scroll];
[scroll release];
}
else
{
//Set the position to the correct one
}
case 1: if (scroll1 == nil)
{
scroll1 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll1.pagingEnabled = YES;
scroll1.delaysContentTouches = NO;
scroll1.userInteractionEnabled = YES;
NSInteger viewCount = 15;
for (int i = 0; i < viewCount; i++)
{
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll1 addSubview:filterViewOverlay];
[filterViewOverlay release];
}
scroll1.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.scroll1 setContentOffset:currentPos2];
[self.view addSubview:scroll1];
[scroll1 release];
}
else
{
//Set the position to the correct one
}
case 2: if (scroll2 == nil)
{
scroll2 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll2.pagingEnabled = YES;
scroll2.delaysContentTouches = NO;
scroll2.userInteractionEnabled = YES;
NSInteger viewCount = 15;
for (int i = 0; i < viewCount; i++)
{
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll2 addSubview:filterViewOverlay];
[filterViewOverlay release];
}
scroll2.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.scroll2 setContentOffset:currentPos3];
[self.view addSubview:scroll2];
[scroll2 release];
}
else
{
//Set the position to the correct one
}
case 3: if (scroll3 == nil)
{
scroll3 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll3.pagingEnabled = YES;
scroll3.delaysContentTouches = NO;
scroll3.userInteractionEnabled = YES;
NSInteger viewCount = 15;
for (int i = 0; i < viewCount; i++)
{
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll3 addSubview:filterViewOverlay];
[filterViewOverlay release];
}
scroll3.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.scroll3 setContentOffset:currentPos4];
[self.view addSubview:scroll3];
[scroll3 release];
}
else
{
//Set the position to the correct one
}
case 4: if (scroll4 == nil)
{
scroll4 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll4.pagingEnabled = YES;
scroll4.delaysContentTouches = NO;
scroll4.userInteractionEnabled = YES;
NSInteger viewCount = 15;
for (int i = 0; i < viewCount; i++)
{
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll4 addSubview:filterViewOverlay];
[filterViewOverlay release];
}
scroll4.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.scroll4 setContentOffset:currentPos5];
[self.view addSubview:scroll4];
[scroll4 release];
}
else
{
//Set the position to the correct one
}
case 5: if (scroll5 == nil)
{
scroll5 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll5.pagingEnabled = YES;
scroll5.delaysContentTouches = NO;
scroll5.userInteractionEnabled = YES;
NSInteger viewCount = 15;
for (int i = 0; i < viewCount; i++)
{
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll5 addSubview:filterViewOverlay];
[filterViewOverlay release];
}
scroll5.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.scroll5 setContentOffset:currentPos6];
[self.view addSubview:scroll5];
[scroll5 release];
}
else
{
//Set the position to the correct one
}
}
}