UIScrollView 的大小和图像的大小
Size of UIScrollView and Size of Images
我创建了这个动态加载图像的滚动视图。但是我无法让图像一张一张地覆盖屏幕(应该适应 iPhone/iPad)。并且图像的高度也已损坏(见附图)
我做错了什么?
图片
加载图片的来源:
for (int i=0; i < numberOfImages; i++) {
// create image
NSString *imageName = [NSString stringWithFormat: imageArray[i], i+1];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// put image on correct position
CGRect rect = imageView.frame;
rect.origin.x = currentX + self.scrollView.frame.size.width/2;
imageView.frame = rect;
// update currentX
currentX += imageView.frame.size.width + self.scrollView.frame.size.width;
[self.scrollView addSubview:imageView];
[imageView release];
}
self.scrollView.contentSize = CGSizeMake(currentX, self.view.frame.size.height);
self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:scrollView];
[self.scrollView release];
这应该适合你:
for (int i = 0; i < numberOfImages; i++) {
// create image
NSString *imageName = [NSString stringWithFormat: imageArray[i], i+1];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.contentMode = UIViewContentModeCenter;
// put image on correct position
CGRect rect = self.scrollView.bounds;
rect.origin.x = currentX;
imageView.frame = rect;
// update currentX
currentX += self.scrollView.frame.size.width;
[self.scrollView addSubview:imageView];
[imageView release];
}
self.scrollView.contentSize = CGSizeMake(currentX, self.scrollView.frame.size.height);
您还可以将 scrollView 分页 属性 设置为是,这样它会逐页滚动。
您应该使用具有水平滚动功能的 UICollectionView 而不是 scrollView,并且您可以从集合视图中实现委托以提供具有所需尺寸的单元格。实施起来会非常简单明了。
我创建了这个动态加载图像的滚动视图。但是我无法让图像一张一张地覆盖屏幕(应该适应 iPhone/iPad)。并且图像的高度也已损坏(见附图)
我做错了什么?
图片
加载图片的来源:
for (int i=0; i < numberOfImages; i++) {
// create image
NSString *imageName = [NSString stringWithFormat: imageArray[i], i+1];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// put image on correct position
CGRect rect = imageView.frame;
rect.origin.x = currentX + self.scrollView.frame.size.width/2;
imageView.frame = rect;
// update currentX
currentX += imageView.frame.size.width + self.scrollView.frame.size.width;
[self.scrollView addSubview:imageView];
[imageView release];
}
self.scrollView.contentSize = CGSizeMake(currentX, self.view.frame.size.height);
self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:scrollView];
[self.scrollView release];
这应该适合你:
for (int i = 0; i < numberOfImages; i++) {
// create image
NSString *imageName = [NSString stringWithFormat: imageArray[i], i+1];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.contentMode = UIViewContentModeCenter;
// put image on correct position
CGRect rect = self.scrollView.bounds;
rect.origin.x = currentX;
imageView.frame = rect;
// update currentX
currentX += self.scrollView.frame.size.width;
[self.scrollView addSubview:imageView];
[imageView release];
}
self.scrollView.contentSize = CGSizeMake(currentX, self.scrollView.frame.size.height);
您还可以将 scrollView 分页 属性 设置为是,这样它会逐页滚动。
您应该使用具有水平滚动功能的 UICollectionView 而不是 scrollView,并且您可以从集合视图中实现委托以提供具有所需尺寸的单元格。实施起来会非常简单明了。