0

我是一个新手,正在努力制作我的第一个应用程序。我想通过从 UISlider 接收值来更改 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>

提前谢谢了。

4

1 回答 1

0

而不是@selector(drawRect:)使用@selector(setNeedsDisplay).


文档:

- (void)drawRect:(CGRect)rect;

... 当第一次显示视图或发生使视图的可见部分无效的事件时,将调用此方法。你永远不应该自己直接调用这个方法。要使视图的一部分无效,从而导致该部分被重绘,请改为调用setNeedsDisplayorsetNeedsDisplayInRect:方法。

即使它直接说你自己并且你没有直接调用它,它仍然适用于你的情况。

— PaintCode 支持

于 2017-03-20T08:21:32.917 回答