Iphone UIImageView正在忽略我的ContentMode设置

Iphone UIImageView正在忽略我的ContentMode设置,iphone,uiimageview,uiimage,Iphone,Uiimageview,Uiimage,我在这里找到了一些其他答案,但它们似乎不适用/不起作用,所以我想这可能是由于我的特定代码 在我的应用程序中,我有一组UIImage,它们实际上是iPhone相机拍摄的缩小照片 我试图在滚动视图中显示UIImage,并正确缩放以显示整个图像 这是我的代码: scrollView.pagingEnabled = YES; scrollView.clipsToBounds = NO; CGFloat contentOffset = 0.0f; pageControl.numberOfPages =

我在这里找到了一些其他答案,但它们似乎不适用/不起作用,所以我想这可能是由于我的特定代码

在我的应用程序中,我有一组UIImage,它们实际上是iPhone相机拍摄的缩小照片

我试图在滚动视图中显示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
我在UIImageView(滚动视图内)上看到的图像是图像中心的放大图像,无论我将contentmode更改为什么


我做错了什么?谢谢大家!

为scrollView设置内容大小,高度为0,内容偏移量为宽度。。。那显然不行

您必须将滚动视图的内容大小设置为图像的大小。这就是内容大小的含义-如果它大于滚动视图的大小,滚动视图将允许您滚动查看屏幕上不存在的部分


显然,您要做的是将图像视图的帧设置为屏幕宽度n倍的contentOffset,以便您可以水平滚动图像。因此,将UIImageView的大小设置为您的屏幕大小,其原点设置为(n*screenSize.width,0),滚动视图的内容大小设置为((n+1)*screenSize.width,screenSize.height),其中n是图像计数。

答案是我前面提到的:UIImage的缩放因子导致ContentMode无法工作。或者至少让它看起来不起作用。

我知道这个问题已经被问到并得到了回答,但最近这个问题似乎还有另一个原因。从tvOS 9.1开始,设置
AdjustSimageWhenCancestorFocused
似乎会使
contentMode
对于
UIImageView
来说过时(一个可能的错误)。我希望这能帮助一些人。

事实上,scrollview工作得很好,只是imageview不尊重contentmode。不过我发现了问题。UIImage的比例因子为5,这是我在程序前面设置的。解决了这个问题。谢谢如果缩放图像,内容模式将无法工作。