2010-08-12 5 views
0

WWDC 2009 및 2010에서 두 가지 비디오를 모두보고 난 후 Apple이 scrollviews 및 사진을 통해 페이징을보고 iPhone을위한 photoviewer 응용 프로그램을 구현하는 방법을 이해하기 시작했습니다. 프로세스를 매우 잘 이해하기 위해 각 단계를 매우 천천히 수행하고 있습니다. 모든 것을 내 앱에 구현하기 전에.pagingScrollView Slideshow

내가 순간에 몇 가지 문제로 실행 한 :

  1. 은 첫째로 나는 그것이 사이의 공간의 비트와 함께 좌우 사이의 사진을 슬쩍하는 페이징 스크롤 뷰를하도록 설정되어 같은 비디오에 있지만 UIImageView 이미지 안에 이미지를 추가하면 화면에 너무 큰 이미지가 표시됩니다. UIViewContentModeScaleAspectFit을 추가하려고했습니다. 효과가 없다.

  2. 이미지를 포함하는 배열의 각 요소를 보려면 for 루프를 거쳐 UIViews가 겹쳐져 다른 사진 위에 한 장의 사진이 표시되면 다음 섹션으로 분리하는 방법을 알고 싶습니다. 페이징 스크롤 뷰. 나는 아이폰 프로그래밍에 상당히 새로운 오전 일을 복용하고 언급 한 것처럼


- (void)loadView{ 
    UIImage *img0 = [UIImage imageNamed:@"29.png"]; 
    UIImage *img1 = [UIImage imageNamed:@"33.png"];

NSMutableArray *imgArray = [[NSMutableArray alloc] initWithObjects:img0, img2, nil]; CGRect pagingScrollViewFrame = [[UIScreen mainScreen] bounds]; pagingScrollViewFrame.origin.x -= 10; pagingScrollViewFrame.size.width += 20; pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame]; pagingScrollView.pagingEnabled = YES; pagingScrollView.backgroundColor = [UIColor blackColor]; pagingScrollView.contentSize = CGSizeMake(pagingScrollViewFrame.size.width * [imgArray count], pagingScrollViewFrame.size.height); self.view = pagingScrollView; for (int i=0; i < [imgArray count]; i++) { UIImageView *page = [[UIImageView alloc] initWithImage: [imgArray objectAtIndex:i]]; page.contentMode = UIViewContentModeScaleAspectFit; [pagingScrollView addSubview:page]; }}

천천히 완전히 결국이 프로그램이 곤란하고 도청과 네이티브 응용 프로그램을 모방하는 것, 이해하기 줌을 위해.

답변

3

UIImageViews를 사용하는 경우보기의 clipsToBounds 필드가 yes로 설정되어 있는지 확인해야합니다. 추가 시도 :

UIImageView *page = [[UIImageView alloc] 
          initWithImage:[imgArray objectAtIndex:i]]; 
[page setContentMode:UIViewContentModeScaleAspectFit]; 
[page setClipsToBounds:YES]; 
[pagingScrollView addSubview:page]; 

그런 다음 이미지의 프레임을 스크롤보기 내에서 올바른 오프셋으로 설정해야합니다. 프레임의 원점 x는 프레임의 너비와 이미지 인덱스의 길이가되어야합니다.

[page setFrame:CGRectMake(i*pagingScrollViewFrame.size.width, y, width, height)]; 

내가이 색인이 에 대한 루프에서입니다 : 그래서 당신이 뭔가를해야합니다.

참조하는 WWDC 세션의 샘플 코드는 -configurePage이라는 메서드에서 수행됩니다. 샘플 코드를 다운로드 했습니까?

+0

그래, 나는 샘플 코드를 가지고 있었는데 그 일이 무엇인지 알아 내려고 노력했지만, 시도하고 쓰기로 결정한 것은 단순히 WWDC 2010에서 PhotoScroller의 개별 레이어로 보여준 다이어그램에서 나왔다. 페이징 레이어, 확대/축소 UIImage 뷰를 하위 뷰로 만들지 만 레벨을 다시 가져 와서 페이징 작업을 먼저 수행 한 다음 그 작업을 빌드하십시오. 귀하의 대답에서 나는 clipsToBounds 작업 페이지를 구조체 또는 노동 조합이 아니라고 설정할 수 없습니다. – SamRowley

1

-[UIImageView initWithImage:]은 이미지의 크기로 프레임을 설정합니다. 이미지를 올바른 크기로 조정하려면 page.frame = [[UIScreen mainScreen] bounds] 또는 이와 비슷한 것을 사용해야합니다.

+0

고맙습니다. AspectFit과 함께 사용하지는 않았지만 제대로 작동했습니다 : D. 기본 scrollView에서 imageViews를 설정하는 방법을 알아야합니다. – SamRowley

관련 문제