2012-03-13 4 views
0

여기에 다른 답변이 있지만 작동하지 않는 것으로 보입니다. 따라서 특정 코드로 인한 것일 수 있습니다.UIImageView가 내 ContentMode 설정을 무시합니다.

내 앱에는 실제로 iPhone 카메라에서 찍은 사진 크기가 축소 된 UIImages 배열이 있습니다.

전체 이미지를 표시하도록 올바르게 조정 된 scrollView 내에서 UIImage를 표시하려고합니다.

내 코드입니다 :
scrollView.pagingEnabled = YES; 
scrollView.clipsToBounds = NO; 

CGFloat contentOffset = 0.0f; 

pageControl.numberOfPages = [imageArray count]; 
pageControl.currentPage = 0; 

for(UIImage *image in imageArray) 
{ 
    NSLog(@"image width = %f, image height = %f", image.size.width, image.size.height); 

    CGRect imageViewFrame = CGRectMake(contentOffset, 0, scrollView.frame.size.width,     scrollView.frame.size.height); 

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageViewFrame]; 
    [imageView setImage:image]; 
    [imageView setClipsToBounds:YES]; 
    [imageView setContentMode:UIViewContentModeScaleAspectFill]; //I've tried others, but nothing seems to show the entire image 
    [scrollView addSubview:imageView]; 
    [imageView release]; 
    contentOffset += scrollView.frame.size.width; 
    [scrollView setContentSize:CGSizeMake(contentOffset, 0)]; 
} 

그냥 참고로,이 인물 중심의 응용 프로그램입니다 및 이미지 자체는 세로 방향에서 촬영했다.

NSLog 출력 :

image width = 387.200012, image height = 518.400024 

내가 상관없이 내가에 contentmode을 변경 무엇을, 이미지의 중심의 최대 확대 이미지가합니다 (있는 ScrollView 이내)있는 UIImageView에 표시 보지 이미지 .

내가 뭘 잘못하고 있니? 고맙습니다!

+0

이미지 크기를 조절하면 콘텐츠 모드가 작동하지 않습니다. –

답변

1

대답은 이전에 언급 한 내용입니다. UIImage의 배율 인수로 인해 ContentMode가 작동하지 않습니다. 또는 적어도, 그것은 작동하지 않는 것처럼 보였다.

0

당신은 공의 높이와 그 분명히 작동하지 않을 수 있습니다 폭 ...로 contentOffset으로 있는 ScrollView에 대한 콘텐츠 크기를 설정합니다.

스크롤보기의 콘텐츠 크기는 이미지의 크기로 설정해야합니다. 이것이 내용 크기의 의미입니다. 스크롤보기의 크기보다 크면 스크롤보기를 사용하여 화면에없는 부분을 스크롤 할 수 있습니다.

은 무엇을 분명히하고 싶은 것은 당신이 이미지를 가로로 스크롤 할 수 있도록 화면의 n 배 폭의 contentOffset이미지 뷰의 프레임을 설정하는 것입니다. 그래서 UIImageView의 크기를 화면 크기로 설정하십시오. (n * screenSize.width, 0)의 원점이며 스크롤 뷰의 콘텐츠 크기는 (n + 1) * screenSize.width, screenSize.width), n은 이미지 수입니다.

+0

실제로 scrollview가 완벽하게 작동합니다. 이미지보기가 contentmode를 존중하지 않는다는 것입니다. 그래도 문제가 발견되었습니다. UIImage의 스케일 인수는 5였습니다. 이전에이 프로그램에서 설정 했었습니다. 이 문제를 해결하면 문제가 해결됩니다. 감사! – kurisukun

0

이 질문에 답을 얻었지만 최근에이 문제의 또 다른 원인이있는 것 같습니다. tvOS 9.1 현재 adjustsImageWhenAncestorFocused으로 설정하면 UIImageView에 대해 contentMode이 사용되지 않을 수 있습니다 (가능한 버그). 나는 이것이 누군가를 돕기를 바랍니다.

관련 문제