UILabels Position in UIView dynamisch aktualisieren, abhängig von ihrem Textwert
Ich erhalte diese Werte aus dem Web. Dieser Bildschirm, wenn alle Werte aus dem Web stammen, sieht cool aus.
Und wenn keine Daten vorliegen, sieht es folgendermaßen aus.
Ich habe diesen Code verwendet
//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;
}
Wie aktualisiere ich den Beschriftungsrahmen, damit Beschriftungen die Positionen leerer Beschriftungen annehmen können?