防止在 iOS 的 Scrollview 中拉伸图像
Posted
技术标签:
【中文标题】防止在 iOS 的 Scrollview 中拉伸图像【英文标题】:Prevent Stretching of image in Scrollview in iOS 【发布时间】:2013-04-03 03:07:02 【问题描述】:我正在向滚动视图添加一些按钮。我正在用图像设置按钮的背景。当您看到输出时,图像似乎被拉伸了。我想避免这种情况。
所以我试过这个:
创建了一个自定义视图,用于处理图像并使该图像远离边缘。
这样做是为了自动调整大小:
我的代码如下所示:
for (int counter = 0; counter < imageCount; counter++)
NSString *imageName = [NSString stringWithFormat:@"%@_img0%d.jpg",mRoutePointId,counter+1];
UIImage *infoImage = [UIImage imageNamed:imageName];
GalleryImage *galleryItem = [[GalleryImage alloc] initWithImage:infoImage];
UIButton *infoImageButton = [[UIButton alloc] initWithFrame:CGRectMake(xOffset, 0, infoImagesScrollView.frame.size.width, infoImagesScrollView.frame.size.height)];
infoImageButton.tag = counter;
[infoImageButton setImage:galleryItem.galleryImage forState:UIControlStateNormal];
[infoImageButton setImage:galleryItem.galleryImage forState:UIControlStateHighlighted];
[infoImageButton addTarget:self action:@selector(infoImageButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[infoImageButton setTitle:[NSString stringWithFormat:@"%@_img0%d.jpg",mRoutePointId,counter+1] forState:UIControlStateApplication];
[infoImagesScrollView addSubview:infoImageButton];
xOffset+=infoImagesScrollView.frame.size.width;
CustomView.m
#import "GalleryImage.h"
@implementation GalleryImage
@synthesize galleryImage;
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
// Initialization code
return self;
- (id)initWithImage:(UIImage*) image
self = [super init];
if (self)
// galleryImageView = nil;
galleryImage = image;
return self;
-(void)awakeFromNib
[galleryImageView setImage:galleryImage];
需要一些关于如何确保图像在添加到按钮时不会拉伸的指导。
也欢迎其他建议..
【问题讨论】:
【参考方案1】:可能是图片视图contentMode
的问题。
【讨论】:
例如试试galleryImageView.contentMode = UIViewContentModeCenter
我有横向和纵向图像。风景图像工作正常。不要被拉长。但肖像图像往往会被拉伸。
在 awakeFromNib 中放置了 galleryImageView.contentMode = UIViewContentModeCenter.. 但仍然没有改变...以上是关于防止在 iOS 的 Scrollview 中拉伸图像的主要内容,如果未能解决你的问题,请参考以下文章
ios监听ScrollView/TableView滚动的正确姿势