动态设置图像视图框架

Posted

技术标签:

【中文标题】动态设置图像视图框架【英文标题】:setting image view frame dynamically 【发布时间】:2011-08-02 08:05:16 【问题描述】:

在我的应用程序中,我将一定数量的图像从我的设备发送到其他设备。我实现了这一切。现在我想要的是,当我只向其他设备发送 1 张图像时,图像视图的框架应该是全屏。如果我发送 2 个图像,那么框架应该是这样的;-2 个图像覆盖整个屏幕。所以框架应该根据发送的图像数量动态变化。目前我正在使用表格视图来显示接收到的图像.还有什么其他选择可以最好地实现我的目标。请帮助。以前有人做过这种工作,请我需要你的帮助。

谢谢, 雏菊

【问题讨论】:

【参考方案1】:

你可以这样做:

CGFloat   screenWidth    = 320.0;
CGFloat   screenHeight   = 460.0;

NSArray   imageNames = [NSArray arrayWithObjects:@"Picture1.png", @"Picture2.png", nil];
NSInteger numberOfImages = [imageNames size];

for (NSInteger j = 0; j < numberOfImages; ++j)

    UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[imageNames objectAtIndex:j]]];
    [image setFrame:CGRectMake(0.0, screenHeight / (CGFloat)numberOfImages * (CGFloat)j, screenWidth, screenHeight / (CGFloat)numberOfImages)];
    [self addSubview:image];
    [image release];

此示例垂直列出图像。如果您还想要一个水平列表,那么您必须使用数学。 代码未经测试。

【讨论】:

:-这只会设置一个图像对吗?我想设置我将动态发送的图像。请我是这个的新手。请帮助 我编辑了代码,所以现在您可以按名称将图像添加到数组中,并且它是自动的。 非常感谢朋友,我会试试这个更新你并会接受答案,好的,谢谢 [图像 setFrame:CGRectMake(0.0, screenHeight/(CGFloat)numberOfImages * (CGFloat)j, screenWidth, screenHeight/(CGFloat)numberOfImages)]; 指针值在预期浮点值的地方使用,这是错误的,请帮助

以上是关于动态设置图像视图框架的主要内容,如果未能解决你的问题,请参考以下文章

动态设置图像视图的边距

在列表视图项中动态设置图像视图很慢

如何在表视图中正确设置动态标题视图?

SwiftUI:动态设置图像的大小

SwiftUI:如何在动态列表或 LazyVStack 中获取视图框架

如何根据swift 4或5中的图像大小使图像视图高度和宽度(纵横比)动态? [关闭]