2012-02-27 16 views
0

私はUIViewを持っています。viewForHeaderInSectionでビューとして返されました。今、私は、ビューの右下に小さな透明な正方形を作って、細胞が見えるようにしたいと思います。このようなことをどうすれば実現できますか?このCGContextSetBlendModeを使用する必要がありますか?誰もがこれに光を当てることができます。UIViewの一部を透明にする

+0

でのコードの下の行を追加します。部分透明である。 –

+0

結果から青写真を追加できますか?視覚化するのは難しいです。 – mariusLAN

答えて

0

ビューは、SwitchViewController.view内のサブビューとして挿入されます。したがって、それらは常にSwitchViewControllersビューの上に表示されます。他のビューは削除され、1回に1つのビューのみが表示されます。

ここで

[yellowViewController.view removeFromSuperview]; 
[self.view insertSubview:blueViewController.view atIndex:0]; 

ビューは、デフォルトではそのサブビューの後ろに表示され、ビューは独自のサブビューのリストに含まれていないよう

insertSubview:atIndex: 

は、ビュー自体の後ろにそれを配置することはできません。

+0

このコードがうまくいくかどうか私に教えてください。私はスタックを使って解決したのと同じprobを持っていました –

0

ここにUIViewサブクラスのソリューションがあります。これを有効にするには、superviews backgroundColorプロパティをnil witchがデフォルト値のままにしておく必要があります。このUIViewサブクラスがストーリーボードにある場合は、属性インスペクタで背景色を「カラーをクリア」に設定してください。

- (void)drawRect:(CGRect)rect { 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    UIColor *blackBackgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; 
    CGContextSetFillColorWithColor(ctx, blackBackgroundColor.CGColor); 
    CGContextFillRect(ctx, rect); 
    CGRect transparentPart = CGRectMake(10, 10, 120, 80); 
    CGContextClearRect(ctx, transparentPart); 
} 
0
CALayer *layer = [[CALayer alloc] init]; 
[layer setFrame:yourBoundsInView]; 

[[yourView layer] setMask:layer]; 

またはあなたはそれをすべてを透明にしていることがあるPNGと背景としてuiimageviewを追加できるのdrawRectメソッドをオーバーライドして、エンド

UIBezierPath *seeThrough = [UIBezierPath bezierPathWithRect:seeThroughRect]; 
[[UIColor colorWithWhite:1 alpha:0] set]; 
[seeThrough fillWithBlendMode:kCGBlendModeSourceIn alpha:1]; 
関連する問題