2011-11-08 8 views
0

UIViewのサブクラスである影が描かれた素晴らしいコードがいくつか見つかりました。それから私はどこでも、私は影を配置したい、そのビューを使用することができます。iOS:UIView内に影を描く

次を使用して作成した
-(void) layoutSubviews { 
    CGFloat coloredBoxMargin = 40; 
    CGFloat coloredBoxHeight = self.frame.size.height; 
    _coloredBoxRect = CGRectMake(coloredBoxMargin, 0, 40, coloredBoxHeight); 
} 

-(void) drawRect:(CGRect)rect { 

    CGColorRef lightColor = [UIColor colorWithRed:105.0f/255.0f green:179.0f/255.0f blue:216.0f/255.0f alpha:0.8].CGColor; 
    CGColorRef shadowColor = [UIColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:0.4].CGColor; 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    // Draw shadow 
    CGContextSaveGState(context); 
    CGContextSetFillColorWithColor(context, lightColor); 
    CGContextSetShadowWithColor(context, CGSizeMake(-13, 0), 10, shadowColor); 

    CGContextFillRect(context, _coloredBoxRect); 
    CGContextRestoreGState(context); 
} 

UIViewWithShadowRight* verticalLineView2 = [[[UIViewWithShadowRight alloc] initWithFrame:CGRectMake(60, 0, 40 , self.view.frame.size.height)] autorelease]; 
[verticalLineView2 setBackgroundColor:[UIColor clearColor]]; 
[verticalLineView2 setAutoresizingMask:UIViewAutoresizingFlexibleHeight]; 
[verticalLineView2 setClipsToBounds:NO]; 
[self.view addSubview:verticalLineView2]; 
[self.view bringSubviewToFront:verticalLineView2]; 

問題は、影が私は逆にすることができますどのように、右から左に描かれていますこれを左から右に描きますか?

答えて

1

13を負の値ではなく正にします。これは描画された影のxオフセットで、負の値は元の図面の左側にあり、正の値は右側にあります。

+0

いいえ、それは役に立たないようです。それは影を消してしまいます。 –

+0

コードを表示します。これはあなたが探している実際の答えなので、異なる結果が表示されている場合は、グラフィックスコンテキスト上で変更した他の設定が原因である可能性があります。 –

+0

ジョナサン、私はビューを作成するために使用されたコードで私のポストを更新しました。 –

0

このCGContextSetShadowWithColor(コンテキスト、CGSizeMake(-13、0)、10、shadowColor)を変更してください。 現在のx値(-13)を右側の値に置き換えます。

+0

いいえ、2番目の引数は高さのためではありません。 –

関連する問題