2010-12-08 85 views
2

我有一個UIView子類繪製一個簡單的矩形,此代碼:設置一個的UIView的背景顏色從UIViewController中

- (void)drawRect:(CGRect)rect { 

//Get the CGContext from this view 
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGColorRef myColor = [UIColor colorWithHue:0 saturation:1 brightness:0.61 alpha:1].CGColor; 
//Draw a rectangle 
CGContextSetFillColorWithColor(context, myColor); 
//Define a rectangle 
CGContextAddRect(context, CGRectMake(0, 0, 95.0, 110.0)); 
//Draw it 
CGContextFillPath(context); 

}

然後,我有具有UISlider一個單獨的UIViewController在它

-(IBAction) sliderChanged:(id) sender{ 

UISlider *slider = (UISlider *)sender; 
int sliderValue = (int)[slider value]; 
float sliderFloat = (float) sliderValue; 

NSLog(@"sliderValue ... %d",sliderValue); 
NSLog(@"sliderFloat ... %.1f",sliderFloat/100); 

}

在這裏,在sliderChanged,我會如T o能夠動態改變在UIView子類中繪製的矩形的背景顏色。我應該如何去實現這個?

謝謝!

回答

2

創建其持有的UIColor(或CGColor)值的UIView的子類的屬性:

在標題:

@interface MySub : UIView { 
NSColor* rectColor; 
} 

@property (retain) NSColor* rectColor; 
@end 

在實現文件:

@implementation MySub 
@synthesize rectColor 
@end 

你現在可以使用myViewInstance.rectColor = SomeNSColor設置顏色;

你設置了顏色之後,重新繪製視圖,以便與新的背景顏色來繪製矩形:

[myViewInstance setNeedsDisplay]; 
+0

我在嘗試添加預期NSColor線」時,編譯器錯誤NSColor之前的說明符限定符列表「。我可以使用UIColor嗎? – TrekOnTV2017 2010-12-08 21:50:38