iOS-添加视图而不知道其大小
我正在尝试以编程方式将子视图添加到视图中。过程如下:iOS-添加视图而不知道其大小,ios,objective-c,swift,Ios,Objective C,Swift,我正在尝试以编程方式将子视图添加到视图中。过程如下: [yourView setFrame: CGRectMake(newXOrigin, newYOrigin, newWidth, newHeight)]; 1) 从web获取媒体数组 2) 如果是图片,则构建一个UIImageView并将其添加到视图底部。如果是文本,则构建一个UITextView,并将其添加到视图的底部 3) 重复步骤2,直到阵列结束 问题是: 如果我不知道视图的高度,如何创建视图?似乎要添加视图,我需要指定其框架 如何
[yourView setFrame: CGRectMake(newXOrigin, newYOrigin, newWidth, newHeight)];
1) 从web获取媒体数组
2) 如果是图片,则构建一个UIImageView
并将其添加到视图底部。如果是文本,则构建一个UITextView
,并将其添加到视图的底部
3) 重复步骤2,直到阵列结束
问题是:
- 如果我不知道视图的高度,如何创建视图?似乎要添加视图,我需要指定其框架
- 如何将每个视图添加到现有视图的底部
Tiago您始终可以使用零尺寸的框架(
CGRectZero
)创建视图,并在知道后设置其框架。您始终可以使用零尺寸的框架(CGRectZero
)创建视图,并在知道后设置其框架。如果您不知道视图的尺寸,添加视图后,调用sizeToFit
和layoutifneedd
方法。代码如下:
目标-C:
[superView addSubview: view];
[view sizeToFit];
[view layoutIfNeeded];
superView.addSubview(view)
view.sizeToFit()
view.layoutIfNeeded()
Swift:
[superView addSubview: view];
[view sizeToFit];
[view layoutIfNeeded];
superView.addSubview(view)
view.sizeToFit()
view.layoutIfNeeded()
如果不知道视图的大小,请在添加视图后调用
sizeToFit
和layoutifneedd
方法。代码如下:
目标-C:
[superView addSubview: view];
[view sizeToFit];
[view layoutIfNeeded];
superView.addSubview(view)
view.sizeToFit()
view.layoutIfNeeded()
Swift:
[superView addSubview: view];
[view sizeToFit];
[view layoutIfNeeded];
superView.addSubview(view)
view.sizeToFit()
view.layoutIfNeeded()
我假设您希望初始化视图,然后将其添加为子视图。如果是,您可以执行以下操作:
UIView *yourView = [[UIView alloc] initWithFrame: CGRectZero];
//Note - CGRectZero is equivalent to CGRectMake(0,0,0,0)
[superView addSubview: yourView];
现在,当您准备调整视图的大小时,可以按如下操作:
[yourView setFrame: CGRectMake(newXOrigin, newYOrigin, newWidth, newHeight)];
或者
[yourView sizeToFit];
我假设您希望初始化视图,然后将其添加为子视图。如果是,您可以执行以下操作:
UIView *yourView = [[UIView alloc] initWithFrame: CGRectZero];
//Note - CGRectZero is equivalent to CGRectMake(0,0,0,0)
[superView addSubview: yourView];
现在,当您准备调整视图的大小时,可以按如下操作:
[yourView setFrame: CGRectMake(newXOrigin, newYOrigin, newWidth, newHeight)];
或者
[yourView sizeToFit];
我认为您可以使用UITableView来实现此功能。tableView通常用于显示“N”个项目。您可以创建两个自定义单元格 1用于显示图像 第二个用于显示文本视图
然后根据数组的项目类型,您可以重用这些自定义单元格。我认为您可以使用UITableView来实现此功能。tableView通常用于显示“N”个项目。您可以创建两个自定义单元格 1用于显示图像 第二个用于显示文本视图
然后根据数组的项目类型,您可以重用这些自定义单元格。因此我找到了两个问题的答案: 如果我不知道视图的高度,如何创建视图? 从web获取内容后,调用
.layoutifneedd()
以布局视图。现在,您可以使用视图的contentSize
来绘制它。见下面的例子
如何将每个视图添加到现有视图的底部?
2种方式:
1) 使用UITableView,更简单、更可靠
2) 有一个变量来保存视图堆栈的底部,并在每次添加新视图时更新它。使用此变量可决定在何处添加新视图
以下是代码(带2):
感谢@Dhruv Ramani的提示。所以我找到了两个问题的答案: 如果我不知道视图的高度,如何创建视图? 从web获取内容后,调用
.layoutifneedd()
以布局视图。现在,您可以使用视图的contentSize
来绘制它。见下面的例子
如何将每个视图添加到现有视图的底部?
2种方式:
1) 使用UITableView,更简单、更可靠
2) 有一个变量来保存视图堆栈的底部,并在每次添加新视图时更新它。使用此变量可决定在何处添加新视图
以下是代码(带2):
感谢@Dhruv Ramani的提示