iPhone UIImageView 在 UIScrollView 中水平滚动 - 中心图像?
Posted
技术标签:
【中文标题】iPhone UIImageView 在 UIScrollView 中水平滚动 - 中心图像?【英文标题】:iPhone UIImageView horizontall scrolling in UIScrollView - Center image? 【发布时间】:2012-01-25 14:37:26 【问题描述】:我有根据屏幕大小下载和调整图像大小以适应图像全屏的方法。最大图像尺寸为 (320x416)。现在,我有全屏 UIScrollView,我正在创建 UIImageView,其中 initWithFrame 在 X 上按屏幕宽度移动,水平添加 UIScrollView 空间。 只要我设置在 UIScrollView [imgView setContentMode:UIViewContentModeLeft] 中创建的 UIImageView 就没有问题。使用 [imgView setContentMode:UIViewContentModeCenter] 它会移动图像,每次循环计数,向右添加半屏,所以我只能看到第一张图像,只有当我稍微落后于 scrollView 边界时才能看到第二张和第三张。
这是我的代码,有人能踢我一下我在哪里遗漏了什么吗?谢谢你。 我将 NSLog 放在 imgView initWithFrame:CGRectMake 下,但坐标没问题,X 位置移动了 320 像素,然后在 scrollView 中排列 imgView 就可以了。
- (void)setImages
int screenWidth = self.view.frame.size.width;
int screenHeight = self.view.frame.size.height;
// I know count of images here => imageIndex
[mainView setContentSize:CGSizeMake(screenWidth * imageIndex, screenHeight)];
int actualWidth = screenWidth;
for (int index = 0; index < imageIndex; index++)
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(actualWidth - screenWidth, 0, actualWidth, screenHeight)];
ImageProcessing *impc = [[ImageProcessing alloc] init];
UIImage *image = [UIImage imageWithData:[imagesNSDataArray objectAtIndex:index]];
UIImage *resampled = [impc processImageToWidthAndHeight:image :screenWidth :screenHeight];
// [imgView setContentMode:UIViewContentModeCenter];
[imgView setContentMode:UIViewContentModeLeft];
imgView.image = resampled;
[mainView addSubview:imgView];
actualWidth = actualWidth + screenWidth;
【问题讨论】:
【参考方案1】:您正在混合视图宽度和水平位置。视图没有相同的宽度 - 您正在使它们越来越宽。当您尝试使图像在视图中居中时,它会发生偏移,因为视图比您想象的要宽。
int viewX = 0;
for (int index = 0; index < imageCount; index++)
CGRect frame = CGRectMake(viewX, 0, screenWidth, screenHeight);
UIImageView *imgView = [[UIImageView alloc] initWithFrame:frame];
[...]
viewX += screenWidth;
【讨论】:
以上是关于iPhone UIImageView 在 UIScrollView 中水平滚动 - 中心图像?的主要内容,如果未能解决你的问题,请参考以下文章
使用动画 UIImageView 作为 iPhone 相机覆盖
UIImageview 上的渐变层在 iphone 6s 中向上移动,同时在 iphone 5 中正确设置
ModalViewController 中的 UIImageView 正在忽略 ContentMode - iPhone
在 iPhone 上使用 UIImageView 进行图像缩放