UILabel - 在多个标签中显示数据

时间:2016-09-07 10:05:17

标签: ios objective-c uilabel

嗨我有来自JSON的数据,我在UILabel中显示它。但是如果没有特定值的数据,UILabel将保持空白并带有空格。

如何删除UILabel空白区域并在UILabel下面取代第一个标签等等..剩余的UILabel。

enter image description here

7 个答案:

答案 0 :(得分:3)

1.设置所有标签的前导和尾随约束。

2.For First label设置顶部约束。

3.使用值0设置其他标签的垂直间距。

注意:

不要设置标签的高度。

首先输出:

enter image description here

第二个输出:(我为第二个和第四个标签设置了空文本)

enter image description here

答案 1 :(得分:0)

如果您不想使用tableview,则每个标签可以有两个属性,即top和height约束,如果没有值,则为标签设置常量为0。不是最优雅的解决方案,但应该工作。如果有必要,我可以提供一个例子,祝你好运。

答案 2 :(得分:0)

如果您不想使用表格视图,那么您可以在视图中包含所有标签并迭代视图子视图并将文本设置为它们。这样您的空标签将是最后一个。您可以稍微调整一下以满足您的要求。

@RunWith(KotlinTestRunner::class)
class MyKotlinTestclass {
   @Test 
   fun test() {
   ...
   }
}

答案 3 :(得分:0)

尝试设置约束并使用高度约束。设置此约束值< =标签高度。因此,此标签是根据max和0之间的文本设置的。

答案 4 :(得分: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

答案 5 :(得分:-1)

CGRect secondFrame = secondLabel.frame;
secondLabel.hidden = YES;
thirdLabel.frame = secondFrame;

如果您有4个标签,并且您想要隐藏第二个标签,并且您想要第二个标签,则需要第三个标签,而不是这样做。

答案 6 :(得分:-1)

您可以在运行时更改任何UILabel的位置。请记住,您的屏幕位于第四象限。 示例代码:

CGRect frame = labelName.frame;
frame.origin.y=10;//y value, horizondal
frame.origin.x= 12;//x value vertical
labelName.frame= frame;`

使用此功能,您也可以这样做。