将 UIImageView 动态添加到 UIScrollview 中,但它不能自动调整大小
Posted
技术标签:
【中文标题】将 UIImageView 动态添加到 UIScrollview 中,但它不能自动调整大小【英文标题】:Add UIImageView into UIScrollview dynamically, but it cannot autoresizing 【发布时间】:2016-04-13 07:43:29 【问题描述】:我已经尝试将UIImageView
动态添加到UIScrollView
,但它无法自动调整大小。
这是我的代码:
UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80 , 50)];
imageView.image=[UIImage imageNamed:@"test.jpg"];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth ;
scrollview.autoresizesSubviews = YES;
imageView.clipsToBounds = YES;
[scrollview addSubview:imageView];
【问题讨论】:
图片是存在的,但它只是不自动调整大小。之前:(width=80,height=50) 之后:(width=80,height=50) 自动调整大小不起作用。 你的imageview框架在这里是固定的,那你怎么能说它是动态的呢? 【参考方案1】:给 AutoResizingMask 如下:
imageView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin ;
您需要为所需的行为提供剩余的 AutoResizingMasks 值。在这里你需要灵活的宽度和高度。所以你需要给调整掩码值剩下四个边距。
希望对你有帮助。
【讨论】:
相反,您可以采用其他方式。根据设备大小创建具有相应宽度和高度的图像视图,如下所示:UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width-50, [UIScreen mainScreen].bounds.size.height -100)];
谢谢,这是工作。但我不知道为什么我的代码不起作用。我想弄清楚。
如果您对答案感到满意,请选择它为正确【参考方案2】:
尝试在滚动视图中添加“UIView”,然后将您的图像视图添加到此视图。它可能会解决您的问题。
【讨论】:
试过了,还是不能自动调整大小。【参考方案3】:查看您的代码,您正在创建 imageView 的对象并添加
[scrollview addSubview:imageView1];
imageView1
【讨论】:
抱歉我的错字,[scrollview addSubview:imageView1];应更正为 [scrollview addSubview:imageView];. 不,可以显示,但不能自动调整大小。 我已经尝试过你的代码,它在左上角向我显示了带有传递宽度和高度的图像 我没有在界面生成器中使用自动布局,所以我想使用自动调整大小来调整图像大小,让它变大并保持比例。以上是关于将 UIImageView 动态添加到 UIScrollview 中,但它不能自动调整大小的主要内容,如果未能解决你的问题,请参考以下文章
将 UITapRecognizerController 添加到 UIImageView