如何更改PaintCode生成对象的大小

时间:2017-03-18 16:25:23

标签: iphone uislider addtarget

我是新手,努力制作我的第一款应用。我想通过从UISlider接收值来更改PaintCode生成的(bezierpath)对象(?)的大小。任何人都可以帮助我下面的代码有什么问题,以及如何使它工作?

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>

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

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

文档:

- (void)drawRect:(CGRect)rect;
  

...首次显示视图或发生使视图的可见部分无效的事件时,将调用此方法。 您永远不应该直接调用此方法。要使视图的一部分无效,从而导致重绘该部分,请改为调用setNeedsDisplaysetNeedsDisplayInRect:方法。

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

- PaintCode支持