Ho bisogno di aggiungere maschera in alto e in basso dello schermo come questo.Aggiungi maschera di sfocatura nella parte superiore e inferiore dello schermo in Objective-C
Come posso ottenere questo risultato?
Ho bisogno di aggiungere maschera in alto e in basso dello schermo come questo.Aggiungi maschera di sfocatura nella parte superiore e inferiore dello schermo in Objective-C
Come posso ottenere questo risultato?
Posso pensare a un modo per ottenere questo effetto. Ma quello di cui hai bisogno non è una maschera di sfocatura, devi usare una maschera di ritaglio.
1- presenta un controller di visualizzazione modale con una vista che contiene UIVisualEffectView nella parte posteriore e una vista scrollview/tableview/collection nella parte anteriore che è sfalsata di 40px (o comunque molto desiderata) dall'alto e dal basso. 2- Aggiungere una maschera alla vista di scorrimento con un'immagine in bianco e nero su misura per l'operazione, è possibile aggiungere la maschera utilizzando il seguente codice:
var maskImage = UIImage(name: "yourMask")
var maskLayer = CALayer()
maskLayer.frame = scrollView.bounds()
maskLayer.contents = maskImage.CGImage
scrollview.layer.mask = maskLayer
3- In alternativa, è anche possibile utilizzare CAGradientLayer per raggiungere il stesso effetto (questo funzionerebbe meglio anche con il ridimensionamento). Esistono molte soluzioni sullo stack overflow su come creare un gradiente di livello, come questo: Create gradient image programmatically in iOS
Detto questo, non capisco perché la tua domanda non sia stata votata. Penso che sia una domanda perfettamente valida da fare.
Spero che questo aiuti!
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];
}
Dove self.BlurView
è tipo di UIView
.
È possibile mantenere questo per la vista superiore e inferiore. E può regolare il telaio blurEffectView.frame
in base alle dimensioni superiori e inferiori.
Spero che questo ti possa aiutare.
Aggiungere UIVisualEffectView sopra le righe:
UIVisualEffectView * vs = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]];
vs.frame = self.view.bounds;
[self.view addSubview:vs];
aggiungere questo codice:
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];
Regolare le variabili per le proprie esigenze, dovrete modificare i percorsi.
Non stai "offuscando" le parti superiori e inferiori, ma mascherandole gradualmente tramite il livello di sfumatura.
Immagino che dovresti controllare questo link: [UIVisualEffectView] (http://stackoverflow.com/questions/24067719/how-to-use-uivisualeffectview) –