2

我目前正在尝试刷新或清除我的UIView平局,但很多方法都不起作用。我试过了:

  1. self.Draw.clearsContextBeforeDrawing
  2. [self.Draw setNeedsDisplay];
  3. self.Draw.removeFromSuperview;

我的代码:

-(void)drawPoint:(UITouch *)touch 
{

    PointLocation *currentLoc = [[PointLocation alloc] init];

    currentLoc.location = [touch locationInView:self];

    self.previousPoint = self.point;

    self.point = currentLoc;
    [self drawToBuffer];

    [self setNeedsDisplay];
}

有什么办法可以清除我的uidraw?或者至少重新加载它?

4

1 回答 1

3

这里有几个基本问​​题。

Draw 是如何声明的?遵循可可命名约定。只有类名应该大写。类的实例应该以小写字母开头。

我想你想要的是:

@interface Draw: UIView
@end

@implementation Draw

- (void) drawRect: (CGRect) r {
  // here you will draw whatever you want in your view.
}

@end

Draw* draw;

在您的 drawPoint 方法中:

[draw setNeedsDisplay];

有关更多详细信息,请参阅视图绘图周期:http: //developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW136

对于奖励积分,将您的视图命名为比 Draw 更具描述性的名称。它是某物的视图,一个包含某些内容的窗口。它不是动词。

于 2012-08-07T02:41:47.317 回答