如何更改 PaintCode 生成对象的大小
How to change size of PaintCode produced object
我是新手,正在努力制作我的第一个应用。我想通过从 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>
非常感谢。
而不是 @selector(drawRect:)
使用 @selector(setNeedsDisplay)
.
文档:
- (void)drawRect:(CGRect)rect;
… This method is called when a view is first displayed or when an event occurs that invalidates a visible part of the view. You should never call this method directly yourself. To invalidate part of your view, and thus cause that portion to be redrawn, call the setNeedsDisplay
or setNeedsDisplayInRect:
method instead.
即使它说 自己直接 而不是你自己直接调用它,它仍然适用于你的情况。
—PaintCode 支持
我是新手,正在努力制作我的第一个应用。我想通过从 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>
非常感谢。
而不是 @selector(drawRect:)
使用 @selector(setNeedsDisplay)
.
文档:
- (void)drawRect:(CGRect)rect;
… This method is called when a view is first displayed or when an event occurs that invalidates a visible part of the view. You should never call this method directly yourself. To invalidate part of your view, and thus cause that portion to be redrawn, call the
setNeedsDisplay
orsetNeedsDisplayInRect:
method instead.
即使它说 自己直接 而不是你自己直接调用它,它仍然适用于你的情况。
—PaintCode 支持