我目前通過使用CALayer
和renderInContext
方法從iOS中的UIView創建PDF文檔。iOS從UIViews創建PDF
我面臨的問題是標籤的銳度。我創建了一個UILabel
子類覆蓋drawLayer
像這樣:
/** Overriding this CALayer delegate method is the magic that allows us to draw a vector version of the label into the layer instead of the default unscalable ugly bitmap */
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());
if (!layer.shouldRasterize && isPDF)
[self drawRect:self.bounds]; // draw unrasterized
else
[super drawLayer:layer inContext:ctx];
}
這種方法讓我畫好的清晰的文字,然而,問題是,我不擁有控制權的其他意見。有沒有什麼方法可以讓我爲嵌入UITableView
或UIButton
的標籤做類似的事情。我想我正在尋找一種方法來遍歷視圖堆棧,並做一些讓我繪製更清晰的文本。
下面是一個例子: 本文呈現很好(我的自定義的UILabel子類)
在標準文本分段控制不是尖銳:
編輯:我得到的上下文畫成我的PDF如下:
UIGraphicsBeginPDFContextToData(self.pdfData, CGRectZero, nil);
pdfContext = UIGraphicsGetCurrentContext();
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);
[view.layer renderInContext:pdfContext];
你是如何獲得你的語境」用'renderInContext'重新繪製?我想知道你是否可以在那裏翻倍。 – matt
更新了我的文章。 – danielbeard