【问题标题】:drawRect is not being called没有调用drawRect
【发布时间】:2010-11-04 05:18:18
【问题描述】:

我需要在矩形中绘制图像,因此我使用 drawRect 方法。我观察到它没有被调用。输出我只能看到空白屏幕。我正在使用 MAC OS,我需要测试应用程序在 Iphone OS 3+ 中。任何人都可以解决我的问题。这是我的代码:

    -(IBAction)calling
  {
 int a=0;
 a=a+1;
 [self.view setNeedsDisplay];  //InRect:CGRectMake(78, 43, 200, 138)];

  }

 - (void)drawRect:(CGRect)rect {
    UIImage *myImage = [UIImage imageNamed:@"btbp.jpg"];

    CGRect imageRect = CGRectMake(10, 10, 300, 400);

    [myImage drawInRect:imageRect];
[self.view setNeedsDisplay];

    [myImage release];
 }

我不知道我错在哪里:(

【问题讨论】:

    标签: objective-c xcode drawrect


    【解决方案1】:
    1. 您的drawRect 方法是否在实际视图中?或者它在视图控制器上,它看起来像什么? drawRect 是您在视图本身上编写/覆盖的内容。

    2. 你不应该在myImage对象上调用release,因为你自己没有alloc

    如果这不是 100% 有意义,我建议您从 iOS Cocoa Views 文档开始,以了解这一切如何组合在一起。

    【讨论】:

    • 实际上我的应用程序是一个基于视图的应用程序。我在 uiviewcontroller 的子类中实现它。我正在编写 drawRect 。是的我在实际视图上绘制它。你建议了一些文件我在哪里可以找到它
    • -drawRect: 方法必须在 UIView 的子类上实现,而不是在视图控制器上实现。另请注意,从您的 drawRect 方法调用 setNeedsDisplay 确实是一个非常糟糕的主意。
    • @iphoneStruggler:我理解你想要做什么,但你应该阅读一些关于基本 Cocoa 应用程序的在线教程,或者获取一本 iPhone 入门书籍。这里有一些基本的东西要正确,可能超出了 Stack Overflow 的范围来回答所有问题。以下是一些关于自定义视图的文档:developer.apple.com/library/ios/#documentation/WindowsViews/…
    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多