如何更改PaintCode生成对象的大小
问题描述:
我是一个新手,努力使我的第一个应用程序。我想通过从UISlider接收一个值来改变由PaintCode制作的(bezierpath)对象(?)的大小。任何人都可以帮我解决下面的代码有什么问题,以及如何使它工作?如何更改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>
非常感谢提前。
答
而不是@selector(drawRect:)
使用@selector(setNeedsDisplay)
。
文档:
- (void)drawRect:(CGRect)rect;
...该方法是当一个视图被首先显示或当事件发生时无效的视图的可见部分调用。 你不应该直接调用这个方法。要使部分视图失效并因此导致该部分重绘,请调用
setNeedsDisplay
或setNeedsDisplayInRect:
方法。
即使它说:自己直接,你是不是直接调用它自己,它仍然适用于你的情况。
- PaintCode支持
它的工作就像一个魅力!非常感谢你分享你的能力! – Lee