2017-03-18 11 views
0

私は最初のアプリを作るのを頑張って初心者です。私は、UISliderから値を受け取ることによって、PaintCodeによって作られた(ベジエパス)オブジェクト(?)のサイズを変更したいと思います。誰も私の下の私のコードで間違っていると私はそれを動作させる方法を助けることができますか?PaintCodeで作成したオブジェクトのサイズを変更するには

int heightOfBubble = 120; 

- (IBAction)widthOfBubble:(id)sender { 
NSLog(@"slider value = %f", self.slider.value); 
[slider addTarget:self action:@selector(drawRect:) forControlEvents:UIControlEventValueChanged]; 
} 


- (void)drawRect:(CGRect)rect { 
label.text = [NSString stringWithFormat:@"%f", self.slider.value]; 
NSLog(@"slider value = %f", self.slider.value); 
[BubbleText10 drawBubbleButtonWithText2:@"안개비 조명은 하예 흔들리는 내 몸을 감싸고~~ 술에 취에 비틀거리는 하~예 나의 모습 이제는 싫어~ 삐리비립" number:12 numberOfWidth:widthOfBubble numberOfHeight:heightOfBubble condition: NO]; 

次のエラーが発生しました。

Mar 19 00:55:45 BubbleText03[44457] <Error>: CGContextRestoreGState: invalid context 0x0. Backtrace: 
    <+[BubbleText10 drawBubbleButtonWithText2:number:numberOfWidth:numberOfHeight:condition:]+4941> 
    <-[BubbleView drawRect:]+421> 
    <-[UIApplication sendAction:to:from:forEvent:]+83> 
    <-[UIControl sendAction:to:forEvent:]+67> 
     <-[UIControl _sendActionsForEvents:withEvent:]+444> 
     <-[UISlider endTrackingWithTouch:withEvent:]+255> 
     <-[UIControl touchesEnded:withEvent:]+620> 
     <-[UIWindow _sendTouchesForEvent:]+2747> 
      <-[UIWindow sendEvent:]+4011> 
      <-[UIApplication sendEvent:]+371> 
      <__dispatchPreprocessedEventFromEventQueue+3248> 
      <__handleEventQueue+4879> 
       <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17> 
       <__CFRunLoopDoSources0+556> 
       <__CFRunLoopRun+918> 
       <CFRunLoopRunSpecific+420> 
        <GSEventRunModal+161> 
        <UIApplicationMain+159> 
        <main+111> 
        <start+1> 

事前に感謝します。

答えて

0

@selector(drawRect:)の代わりに@selector(setNeedsDisplay)を使用してください。


ドキュメント:

- (void)drawRect:(CGRect)rect; 

...この方法は、ビューが最初に表示されるときに呼び出されるか、イベントがそのビューの可視部分を無効に発生した場合にされています。 このメソッドを自分で直接呼び出すべきではありません。ビューの一部を無効にして、その部分を再描画させるには、代わりにsetNeedsDisplayまたはsetNeedsDisplayInRect:メソッドを呼び出します。それは直接自分言うと、あなたが直接、自分でそれを呼び出していない、それはまだあなたの場合に適用される場合であっても

- それは魅力のように働いたPaintCodeサポート

+0

!あなたの能力を共有してくれてありがとう! – Lee

関連する問題