Atualizar dinamicamente a posição do UILabel no UIView depende do valor do texto

Estou recebendo esses valores da web. Essa tela se todos os valores vieram da Web, o que parece legal.

E na ausência de dados, parece o seguinte.

Eu usei esse código

//Purchasae info
    {
        NSInteger heightToDecrease = 0;
        NSInteger heightToIncrease = 0;
        // NSInteger LABEL_HEIGHT = 18;

        maximumSize = CGSizeZero;
        textSize = CGSizeZero;

        //purchaseCostLabel
        heightToDecrease += self.PurchsCostHeightConstrains.constant;
        maximumSize = CGSizeMake(self.purchaseCostLabel.frame.size.width, 999);
        textSize = [UtilityHandler textSizeOfString:self.purchaseCostLabel.text font:self.purchaseCostLabel.font maxSize:maximumSize];
        NSInteger purchaseCostLabelHeight = textSize.height+SPACE_PADDING;
        self.PurchsCostHeightConstrains.constant = purchaseCostLabelHeight;
        totalHeightToIncrease += self.PurchsCostHeightConstrains.constant;

        //insurance
        heightToDecrease += self.insuranceHeightConstraints.constant;
        maximumSize = CGSizeMake(self.purchaseInsuranceLabel.frame.size.width, 999);
        textSize = [UtilityHandler textSizeOfString:self.purchaseInsuranceLabel.text font:self.purchaseInsuranceLabel.font maxSize:maximumSize];
        NSInteger insCostLabelHeight = textSize.height+SPACE_PADDING;
        self.insuranceHeightConstraints.constant = insCostLabelHeight;
        totalHeightToIncrease += self.insuranceHeightConstraints.constant;

        //shipping
        heightToDecrease += self.shippingHeightConstarants.constant;
        maximumSize = CGSizeMake(self.shippingLabel.frame.size.width, 999);
        textSize = [UtilityHandler textSizeOfString:self.shippingLabel.text font:self.shippingLabel.font maxSize:maximumSize];
        NSInteger shippingLabelHeight = textSize.height+SPACE_PADDING;
        self.shippingHeightConstarants.constant = shippingLabelHeight;
        totalHeightToIncrease += self.shippingHeightConstarants.constant;

        //conservation
        heightToDecrease += self.conserVHeightConstraints.constant;
        maximumSize = CGSizeMake(self.conservationLabel.frame.size.width, 999);
        textSize = [UtilityHandler textSizeOfString:self.conservationLabel.text font:self.conservationLabel.font maxSize:maximumSize];
        NSInteger conserLabelHeight = textSize.height+SPACE_PADDING;
        self.conserVHeightConstraints.constant = conserLabelHeight;
        totalHeightToIncrease += self.conserVHeightConstraints.constant;
        //storage
        heightToDecrease += self.storageHeightConstraints.constant;
        maximumSize = CGSizeMake(self.storageLabel.frame.size.width, 999);
        textSize = [UtilityHandler textSizeOfString:self.storageLabel.text font:self.storageLabel.font maxSize:maximumSize];
        NSInteger storagLabelHeight = textSize.height+SPACE_PADDING;
        self.storageHeightConstraints.constant = storagLabelHeight;
        totalHeightToIncrease += self.storageHeightConstraints.constant;
        //Frameing
        heightToDecrease += self.framingHeightConstraints.constant;
        maximumSize = CGSizeMake(self.shippingLabel.frame.size.width, 999);
        textSize = [UtilityHandler textSizeOfString:self.shippingLabel.text font:self.shippingLabel.font maxSize:maximumSize];
        NSInteger framLabelHeight = textSize.height+SPACE_PADDING;
        self.framingHeightConstraints.constant = framLabelHeight;
        totalHeightToIncrease += self.framingHeightConstraints.constant;

        // set content view height constraint
        self.purchaseInformationViewHeightConstraint.constant -= heightToDecrease;
        // set content view height constraint
        self.purchaseInformationViewHeightConstraint.constant += heightToIncrease;


    }

Então, como atualizo o quadro dos rótulos, para que qualquer rótulo possa assumir as posições dos rótulos em branco?

questionAnswers(1)

yourAnswerToTheQuestion