2016-03-09 18 views

答えて

1

私はこの効果を達成する方法を考えることができます。しかし、必要なのはぼかしマスクではなく、クリッピングマスクを使用する必要があります。

1-背中にUIVisualEffectView、上端と下端から40px(またはあなたが望む)のオフセットのあるスクロールビュー/テーブルビュー/コレクションビューを含むビューを持つモーダルビューコントローラを表示します。 2 - タスクに合わせた黒と白の画像を使用したスクロールビューにマスクを追加し、次のコードを使用してマスクを追加することができますが:

var maskImage = UIImage(name: "yourMask") 
var maskLayer = CALayer() 
maskLayer.frame = scrollView.bounds() 
maskLayer.contents = maskImage.CGImage 
scrollview.layer.mask = maskLayer 

、3-または、あなたも達成するためにCAGradientLayerを使用することができます同じ効果(これは拡大縮小でもうまくいく)。 Create gradient image programmatically in iOS

私はあなたの質問が下に投票された理由を理解していないと言われていますが、スタックオーバーフローに関する解決策はたくさんあります。私はそれを作るのが完全に良い質問だと思う。

希望すると便利です。

2
if (!UIAccessibilityIsReduceTransparencyEnabled()) {   
     self.BlurView.backgroundColor = [UIColor clearColor]; 
     UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 
     UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
     blurEffectView.frame = self.view.bounds; 
     [blurEffectView setAlpha:1.0]; 
     [self.BlurView addSubview:blurEffectView];   
    } 

ここで、のタイプはです。

これは、上下の表示に合わせて保存できます。上下の寸法に合わせてフレームblurEffectView.frameを調整できます。

が、これはあなたを助けることを願っています。

1
  1. UIImageViewを背景画像で設定します。
  2. は、トップの上にUIVisualEffectViewを追加します。

    UIVisualEffectView * vs = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]]; 
    vs.frame = self.view.bounds; 
    [self.view addSubview:vs]; 
    
  3. は、トップオーバーのUIViewを追加し、あなたのUITableView(または何を)置くことに。
  4. は、このコードを追加します。

    CAGradientLayer * layer = [CAGradientLayer layer]; 
    layer.frame = tableHolder.bounds; 
    layer.colors = [NSArray arrayWithObjects:(id)[UIColor blackColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, nil]; 
    layer.locations = @[@0.90,@0.99,@1.0]; 
    layer.startPoint = CGPointMake(0.0, 1.0f); 
    layer.endPoint = CGPointMake(0.0f, 0.0f); 
    tableHolder.layer.mask = layer; 
    tableHolder.layer.masksToBounds = true; 
    [tableHolder.layer insertSublayer:layer atIndex:0]; 
    

はご自身のニーズのための変数を調整し、あなたは場所を変更する必要があります。

あなたはトップとボトムを「ぼかす」のではなく、徐々にグラデーションレイヤーを使ってマスクします。

関連する問題