[英]Need To Trap No CGSize on Occasional Nil values in IOS Building a PDF
我在頁面下創建2列。 左列是“標簽”,右列是“數據”。 我正在“數據”側構建並獲取CGSize,因為它可能會大量縮減。 “標簽”側是預先配置的文本,寫在數據之后。
但是,如果對象中沒有數據,就會出現問題(nil?)。 然后,下一個數據寫入不會被向下移動。 下一個“標簽”寫完了。 這是我的代碼。 重復約20個不同的屬性。
提前致謝。 我只是在尋找最干凈的方法來檢查#1是否沒有“大小”(用戶未輸入數據),和/或#2指定最小的“大小”。 這是本質上正在進行的代碼。
size = [[self.currentLoad otherTrailers] sizeWithFont:textFont constrainedToSize:CGSizeMake(maxDataWidth, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
[[self.currentLoad otherTrailers]drawInRect:CGRectMake(kMargin+maxLabelWidth+kColumnMargin, currentPageY, maxDataWidth, maxHeight) withFont:textFont lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentLeft];
[@"Other Trailers" drawInRect:CGRectMake(kMargin, currentPageY, maxLabelWidth, maxHeight) withFont:textFont lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentRight];
currentPageY += size.height;
獲取並檢查值:
NSString *value = [self.currentLoad otherTrailers];
CGFloat height = 15; // or some appropriate minimum value
if (value.length) {
size = [value sizeWithFont:textFont constrainedToSize:CGSizeMake(maxDataWidth, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
[value drawInRect:CGRectMake(kMargin+maxLabelWidth+kColumnMargin, currentPageY, maxDataWidth, maxHeight) withFont:textFont lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentLeft];
height = size.height;
}
[@"Other Trailers" drawInRect:CGRectMake(kMargin, currentPageY, maxLabelWidth, maxHeight) withFont:textFont lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentRight];
currentPageY += height;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.