UILabel - 在多个标签中显示数据
UILabel - Displaying data in Multiple Labels
您好,我有来自 JSON 的数据,我正在 UILabel 中显示它。但是,如果没有特定值的数据,UILabel 将保持为空并显示为白色 space.
我如何删除白色的 UILabel space 并使下面的 UILabel 取代第一个标签,依此类推.. 剩余的 UILabel。
CGRect secondFrame = secondLabel.frame;
secondLabel.hidden = YES;
thirdLabel.frame = secondFrame;
如果你有 4 个标签并且你想隐藏第二个标签,而在第二个标签的位置你想要第三个标签而不是像这样做。
如果您不想使用表格视图,您可以为每个标签设置两个属性,即顶部和高度约束,如果没有值,则将标签的常量设置为 0。不是最优雅的解决方案,但应该可行。有需要我可以举个例子,祝你好运
您可以在 运行 时间更改任何 UILabel 的位置。请记住,您的屏幕位于第四象限。
示例代码:
CGRect frame = labelName.frame;
frame.origin.y=10;//y value, horizondal
frame.origin.x= 12;//x value vertical
labelName.frame= frame;`
使用这个工具你也可以做同样的事情。
如果您不想使用 table 视图,那么您可以将所有标签放在一个视图中,并迭代视图子视图并将文本设置为 them.By,您的空标签将是最后一个那些。您可以稍微调整一下以满足您的要求。
-(void)addLableTextWith :(NSArray*)jsonList
{
NSArray * lblArray = [YourContainerView subviews];
for (int i = 0; i <[jsonList count] ; i++)
{
UILabel * youurLbl = (UILabel*)lblArray[i];
youurLbl.text = jsonList[i];
}
}
尝试设置约束并使用高度约束。设置此约束值 <= 标签高度。所以这个label是根据max到0之间的text设置的。
1.Set 所有标签的前导和尾随约束。
2.For 第一个标签设置顶部约束。
3.Set 值为 0 的其他标签的垂直间距。
注:
不要设置标签的高度。
第一个输出:
第二个输出:(我为第二个和第四个标签设置了空文本)
一个更简单的解决方案是使用单个标签,在本例中命名为 lblDetails 并像这样构建显示的文本
var sDetails = ""
// parse sLine1, sLine2, etc., from JSON
// build up the string you need
if sLine1 != ""
{
sDetails = sLine1
}
if sLine2 != ""
{
sDetails = sDetails + "\n" + sLine2
}
if sLine3 != ""
{
sDetails = sDetails + "\n" + sLine3
}
lblDetails.text = sDetails
您好,我有来自 JSON 的数据,我正在 UILabel 中显示它。但是,如果没有特定值的数据,UILabel 将保持为空并显示为白色 space.
我如何删除白色的 UILabel space 并使下面的 UILabel 取代第一个标签,依此类推.. 剩余的 UILabel。
CGRect secondFrame = secondLabel.frame;
secondLabel.hidden = YES;
thirdLabel.frame = secondFrame;
如果你有 4 个标签并且你想隐藏第二个标签,而在第二个标签的位置你想要第三个标签而不是像这样做。
如果您不想使用表格视图,您可以为每个标签设置两个属性,即顶部和高度约束,如果没有值,则将标签的常量设置为 0。不是最优雅的解决方案,但应该可行。有需要我可以举个例子,祝你好运
您可以在 运行 时间更改任何 UILabel 的位置。请记住,您的屏幕位于第四象限。 示例代码:
CGRect frame = labelName.frame;
frame.origin.y=10;//y value, horizondal
frame.origin.x= 12;//x value vertical
labelName.frame= frame;`
使用这个工具你也可以做同样的事情。
如果您不想使用 table 视图,那么您可以将所有标签放在一个视图中,并迭代视图子视图并将文本设置为 them.By,您的空标签将是最后一个那些。您可以稍微调整一下以满足您的要求。
-(void)addLableTextWith :(NSArray*)jsonList
{
NSArray * lblArray = [YourContainerView subviews];
for (int i = 0; i <[jsonList count] ; i++)
{
UILabel * youurLbl = (UILabel*)lblArray[i];
youurLbl.text = jsonList[i];
}
}
尝试设置约束并使用高度约束。设置此约束值 <= 标签高度。所以这个label是根据max到0之间的text设置的。
1.Set 所有标签的前导和尾随约束。
2.For 第一个标签设置顶部约束。
3.Set 值为 0 的其他标签的垂直间距。
注:
不要设置标签的高度。
第一个输出:
第二个输出:(我为第二个和第四个标签设置了空文本)
一个更简单的解决方案是使用单个标签,在本例中命名为 lblDetails 并像这样构建显示的文本
var sDetails = ""
// parse sLine1, sLine2, etc., from JSON
// build up the string you need
if sLine1 != ""
{
sDetails = sLine1
}
if sLine2 != ""
{
sDetails = sDetails + "\n" + sLine2
}
if sLine3 != ""
{
sDetails = sDetails + "\n" + sLine3
}
lblDetails.text = sDetails