1

FXBlurViewを使用していますが、blurView を下にアニメーション化すると、上部に奇妙な黒い線が表示されます。

ViewControllerUITableの 3/4 と残りの画像があります。UITable何が起こっているかというと、スーパービューで画像ではなく、画像のみをピックアップしているということです。superviewそれで、両方を拾う方法はありますか?または交換?

ここに画像の説明を入力

スーパービューを実際のUIViewに置き換えることでこれを修正できることを読みました

FXBlurView は、デフォルトで直接のスーパービューのコンテンツをキャプチャします。スーパービューが透明または部分的に透明な場合、その背後に表示されるコンテンツはキャプチャされません。必要に応じて、プロパティをオーバーライドして underlyingView、別のビューのコンテンツをキャプチャできます。

FXBlurView.mコードは次のとおりです。

- (UIView *)underlyingView
{
    return _underlyingView ?: self.superview;
}

私はこれを試しました:

((FXBlurView *)self.Genres).underlyingView = _main_view;

しかし、これは違いはありません

ImagesTableViewControllerBlured Uiview を含むメインViewControllerと複製したいものはどこにありますか( main_view)

しかし、これは Blured Uiview の白いページを作成するだけです。

4

1 に答える 1

1

まず、FXBlurView ソースを編集する必要はまったくありません。

第二に、黒いバーは、ピックアップされていないビュー階層の一部であると思います。もしかしてナビ?ビューではなくウィンドウにぼかしビューを追加して、すべてを取得してみてください。

[[[UIApplication sharedApplication] keyWindow] addSubview: blurView];

私が考えることができる唯一のハックに失敗すると、次のようなウィンドウを使用して画像を取得する imageView を作成することです。

- (UIImage *)screenGrab:(id) theView {

   CGRect rect = [self.view bounds];

    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [theView.layer renderInContext:context];   
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

と:

[self screenGrab: [[UIApplication sharedApplication] keyWindow]];

次に、imageView.image をグラブした画像に設定し、これを基になるビューとして設定します。ただし、これを行う必要はありません:)

ビュー階層を理解するためにもう少しコードを見る必要があることに失敗しました。

于 2014-07-05T10:57:41.603 に答える