【问题标题】:Can't draw UImage in UIView::drawRect无法在 UIView::drawRect 中绘制 UImage
【发布时间】:2011-02-28 04:59:05
【问题描述】:

我知道这似乎是一项简单的任务,这就是为什么我不明白为什么我无法渲染图像。

当我设置我的 UIView 时,我会执行以下操作:

myUiView.backgroundColor = [UIColor clearColor];
myUiView.opaque = NO;

我在 UIView 的 init 函数中创建并保留 UIImage:

image = [[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"]] retain];

然后我的 drawRect 看起来像这样:

- (void) drawRect:(CGRect) rect
{
    [image drawInRect:self.bounds];
}

最终我将通过位图上下文来操作 UIImage,然后在 drawRect 中创建一个 CGImage 并渲染它,但现在我只是想让它渲染一个已知的图像。

我一直在研究这个网站以及文档。我已经沿着 CG 路径走下去,并尝试按照其他人发布的大量示例使用 CGContextDrawImage 绘制它,但这也不起作用。

所以我回到了似乎是最直接的绘制图像的方法,但它不起作用。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 您是否验证了图像是您所期望的(不是 nil)并且 self.bounds 也是您所期望的?
  • 天哪...我不敢相信我忽略了一些如此基本的东西。不知道为什么图像为零……至少现在我知道问题出在哪里。谢谢!!

标签: objective-c uiview uiimage drawrect


【解决方案1】:

首先,验证self.bounds 的大小和位置是否符合您的要求。如果大小为 {0,0},则不会显示任何内容。使用此功能检查:

NSLog(@"%@", NSStringFromCGRect(self.bounds));

还要确保图像不为零:

NSLog(@"%@", image);

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多