知道了!
这是我击败 SDK 的方法。
由于某种原因,A UIImageView 不喜欢由 UIGraphicsBeginImageContext 生成的图像。因此,相反,我将我的类更改为标准 UIView(不是 UIImageView)的子类。然后我实现了drawRect方法。在 drawRect 方法中,我将与 UIGraphicsBeginImageContext 块中的代码相同。
出于某种原因,此代码在 drawRect 方法中正确渲染了图像,但在 UIGraphicsBeginImageContext 中却没有(可能是错误,可能是我)。
代码如下。
- (void)drawRect:(CGRect)rect {
UIImage *backgroundImage = [UIImage imageNamed:imageFile];
CGRect elementSymbolRectangle = CGRectMake(0.0f ,0.0f, backgroundImage.size.width, backgroundImage.size.height);
[backgroundImage drawInRect:elementSymbolRectangle];
// draw the element name
[[UIColor whiteColor] set];
// draw the element number
UIFont *font = [UIFont boldSystemFontOfSize:(smallFontSize)];
CGPoint point = CGPointMake(2,1);
[self.atomicNumber drawAtPoint:point withFont:font];
// draw the element symbol
font = [UIFont boldSystemFontOfSize:largeFontSize];
CGSize stringSize = [self.symbol sizeWithFont:font];
point = CGPointMake((elementSymbolRectangle.size.width-stringSize.width)/2,self.frame.size.height-(largeFontSize)-(largeFontSize/10));
[self.symbol drawAtPoint:point withFont:font];
}
(此外,此代码可以在 Apple 示例代码中找到:theElements)