Добавить эффект размытия в UIButton
Как я могу сделать фон кнопки размытым?
Ill узнал, чтобы получить размытый эффект с этим:
let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))
blur.frame = buttonForDisabling.frame
self.tableView.addSubview(blur)
это работает, но только делает размытие с тем же кадром, что и моя кнопка. Я хотел бы иметь кнопку с размытым фоном. Возможно ли это в iOS8?
2 ответов
Это можно сделать, создав размытие, как вы это сделали, и вставив его под заголовком UIButton. Важно отключить взаимодействие с пользователем, чтобы прикосновения не были перехвачены визуальным эффектом и перенаправлены на кнопку.
let blur = UIVisualEffectView(effect: UIBlurEffect(style:
UIBlurEffectStyle.Light))
blur.frame = buttonForDisabling.bounds
blur.userInteractionEnabled = false //This allows touches to forward to the button.
buttonForDisabling.insertSubview(blur, atIndex: 0)
Если вы используете кнопку с изображением, выведите imageview на передний план:
buttonForDisabling.bringSubview(toFront: buttonForDisabling.imageView!)
или просто использовать это расширение:
import Foundation
import UIKit
extension UIButton
{
func addBlurEffect()
{
let blur = UIVisualEffectView(effect: UIBlurEffect(style: .light))
blur.frame = self.bounds
blur.isUserInteractionEnabled = false
self.insertSubview(blur, at: 0)
if let imageView = self.imageView{
self.bringSubview(toFront: imageView)
}
}
}