2017-01-04 5 views
0

ボタンをクリックし、pushViewControllerを使用して新しいViewControllerを追加した直後に、次のコードが呼び出されます。コードはちょうど追加された新しいビューコントローラの内部にあります。なぜRectを塗りつぶしても何も起こらないのですか?

- (void)setColorTable 
{ 

    dispatch_async(dispatch_get_main_queue(), ^(){ 
     [[self view] setNeedsLayout]; 
     [[self view] layoutIfNeeded]; 

     float x = _colorBar.frame.origin.x; 
     float y = _colorBar.frame.origin.y; 


     CGRect bigRect = CGRectMake(x, y, _colorBar.frame.size.width, _colorBar.frame.size.height); 
     UIGraphicsBeginImageContext(bigRect.size); 

     CGContextRef context = UIGraphicsGetCurrentContext();     
     CGContextSetFillColorWithColor(context, [[UIColor yellowColor] CGColor]); 
     CGContextFillRect(context, bigRect); 
     UIGraphicsEndImageContext(); 
    }); 
} 
+0

カラーバーがビュー内であり、それはあなたがしようとしている何のUIView – shd

+0

空であります達成? – Matt

+0

私は運が無ければ描画しようとしています!コンセプトを理解しようとしている – shd

答えて

0

コードに$ vereywhereを描画しません。あなたはneedToDrawRect:を送信することで描画されるために、必要に応じて表示領域をマークして、そのようなあなたのカスタムの内側-drawRect:実装を描く:

-(void)drawRect:(NSRect)unionRectToDraw 
{ 
    // maybe: [super drawRect:unionRectToDraw]; 
    float x = _colorBar.frame.origin.x; 
    float y = _colorBar.frame.origin.y; 

    CGRect bigRect = CGRectMake(x, y, _colorBar.frame.size.width, _colorBar.frame.size.height); 
    UIGraphicsBeginImageContext(bigRect.size); 

    CGContextRef context = UIGraphicsGetCurrentContext();     
    CGContextSetFillColorWithColor(context, [[UIColor yellowColor] CGColor]); 
    CGContextFillRect(context, bigRect); 
    UIGraphicsEndImageContext(); 
} 
関連する問題