2016-12-20 30 views
0

В storyBoard я добавил отдельный UIView как первый ответчик в контроллер view.Then, я добавил это представление как subview of self.view. Но я хочу, чтобы self.view был размытым, когда отображается subview. Как я могу это сделать?Я хочу, чтобы мой контент self.view был видимым, но размытым, предлагать лучший способ

Я пытался путем применения

let imageView = UIImageView(image: UIImage(named: "blur2.jpg")) 
imageView.frame = self.view.bounds 
imageView.contentMode = .scaleAspectFit 
self.view.addSubview(imageView) 
let blurEffect = UIBlurEffect(style: .regular) 
let blurredEffectView = UIVisualEffectView(effect: blurEffect) 
blurredEffectView.frame = imageView.bounds 
self.view.addSubview(blurredEffectView) 


self.view.addSubview(view_Message) 
view_Message.center = self.view.center 
view_Message.alpha = 1 
view_Message.layer.cornerRadius = 0.3 
view_Message.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3) 

view_Message является UIView, который взят в качестве FirstResponder в раскадровке.

Но мой контент self.view остается невидимым. Я хочу, чтобы мой self.view должен был размыться (но должен быть показан слегка), в то же время я хочу, чтобы мое под просмотр было показано.

+0

Try для уменьшения размытости с помощью blurEffectView.alpha = 0,5 – Amanpreet

ответ

0

я предлагаю вам

  • 1. Возьмите UIView (скажем MyView) каркасно себя . просмотры с ясно как backgroundcolor
  • 2. Добавить ImageView в него же кадре
  • 3. набор BackgroundColor для ImageView белого, альфа почти 0,7, и эффект размытия.
  • 4. Теперь добавьте view_Message в MyView, как подвид.
  • 5. Atlast добавить MyView в self.view

или вы можете пойти с помощью UIVisualEffectBlur класса либо в раскадровке или программно доступны для прошивки 8+.

+0

Эта статья позволит решить ваши проблемы https://www.raywenderlich.com/84043/ios-8-visual-effects-tutorial – Jagdeep

-1

Проверьте 3D-представление. Кажется, что ваш ImageView находится в верхней части всех просмотров. Это скроет все ваши взгляды.

Попробуйте

self.view.sendSubviewToBack(imageView) 

в конце концов, будет отправлено сообщение imagview на СПИНКИ ваши все подвиды будут видны.

+0

Это работает, но после увольнения подвида (view_Message), взаимодействие не работает. Нет UIevents (даже если я пишу isUserInteractionenabled = true –

+0

, потому что вы отправляете View на спине, который отправляет его обратно в стеке, отключая взаимодействие .. вы также можете попытаться привести его на передний план, отклонив subview – Jagdeep

+0

Jagdeep может я знаю, почему он занижен? –

0

Вы также можете использовать visualEffectView, а не blurEffect так:

let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light)) 
visualEffectView.frame = view.bounds 
visualEffectView.alpha = 0.7 
self.view.addSubview(visualEffectView) 
0

Вы можете сделать, как этот

 let frame = CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height) 
     blurview = UIView.init(frame: frame) 
     blurview.backgroundColor = UIColor.blackColor() 
     blurview.layer.opacity = 0.5 
     self.view.addSubview(blurview)