首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIImageView正在忽略我的ContentMode设置

UIImageView正在忽略我的ContentMode设置
EN

Stack Overflow用户
提问于 2012-03-13 13:36:28
回答 3查看 2.9K关注 0票数 0

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

在我的应用程序中,我有一系列的UIImages,它们实际上是由iPhone相机拍摄的缩小照片。

我试图在scrollView中显示UIImage,正确缩放以显示整个图像。

这是我的代码:

代码语言:javascript
复制
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输出:

代码语言:javascript
复制
image width = 387.200012, image height = 518.400024

我在UIImageView上看到的图像(在滚动视图中)是图像中心的放大图像,无论我将内容模式更改为什么。

我在这里做错了什么?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-14 09:08:26

答案就是我之前评论过的: UIImage的缩放因子导致了ContentMode无法工作。或者至少,让它看起来不起作用。

票数 1
EN

Stack Overflow用户

发布于 2012-03-13 16:07:13

您将scrollView的内容大小设置为height为0,contentOffset为width ...这显然行不通。

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

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

票数 0
EN

Stack Overflow用户

发布于 2016-03-10 04:39:38

我知道有人问过也回答过这个问题,但最近这个问题似乎还有另一个原因。从tvOS 9.1开始,设置adjustsImageWhenAncestorFocused似乎会使contentModeUIImageView过时(这可能是一个错误)。我希望这对某些人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9678881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档