簡體   English   中英

需要在IOS中的偶然Nil值上不捕獲CGSize生成PDF

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM