2011-06-27 10 views
0

呼ばれることはない私はのdrawRectとsetNeedsDisplayは

ImageViewの= [[UIImageView ALLOC] initWithFrame:[holderViewフレーム]を使用してそれにサブビューとasignジェスチャとしてのUIView(uimageviewを運ぶholderview)を加えます。 [imageview setImage:cppobject-> OutputImage]; imageview.contentMode = UIViewContentModeScaleAspectFit;

[holderView addSubview:imageview]; 
holderView.contentMode = UIViewContentModeScaleAspectFit ; 

UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)]; 
[pinchRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:pinchRecognizer]; 
[pinchRecognizer release]; 

UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)]; 
[rotationRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:rotationRecognizer]; 
[rotationRecognizer release]; 

panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)]; 
[panRecognizer setMinimumNumberOfTouches:1]; 
[panRecognizer setMaximumNumberOfTouches:1]; 
[panRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:panRecognizer]; 
holderView.tag=101; 
[self.view addSubview:holderView]; 
[holderView sizeToFit]; 
[self AddInformation]; 
[holderView retain]; 
[self retain]; 

その後、panRecognizer機能(移動)で、私は

  UIPanGestureRecognizer *gR = (UIPanGestureRecognizer *) sender ; 


     NSValue *value = [NSValue valueWithCGPoint: [gR locationInView:gR.view]]; 





     [Points addObject:value]; 


     [holderView setNeedsDisplay]; 

     NSLog(@"End of measuring") ; 

を使用して線を描画したいと私は

内のすべてのサブビューの上に線を引くポイントにポイントを使用します - (無効)drawRect :(CGRect)rect { NSLog(@ "Entered Draw In Rect");

if (Measuring) { 

    [[UIColor redColor] setStroke]; 

    UIBezierPath *pathToDraw = [UIBezierPath bezierPath]; 

    for (int n = 1; n < [Points count] - 1 ; n++) { 

    NSValue * value = [Points objectAtIndex:(NSInteger)n]; 

     CGPoint point = [value CGPointValue]; 

     [pathToDraw moveToPoint:point]; 


     value = [Points objectAtIndex:(NSInteger)n+1]; 

     point = [value CGPointValue]; 

     [pathToDraw addLineToPoint:point]; 



    } 



    [pathToDraw stroke]; 







} 

}

問題は[holderView setNeedsDisplay]です。 drawRectを呼び出さないでください。それに関する提案またはヘルプ

答えて

3

サブクラスでUIViewをサブクラス化し、drawRectを実装する必要があります。

holderviewを作成するときは、デフォルトのUIViewではなくサブクラス化したUIViewをインスタンス化していることを確認してください。

関連する問題