Как благодаря добавлению этих функций расширения UIButton мое приложение работает лучше? - PullRequest
0 голосов
/ 14 сентября 2018

После неудачной попытки настроить фильтр живого изображения на представлении «Металл» для повышения производительности, мне было любопытно, оказал ли какой-то эффект мой пользовательский интерфейс.У меня есть расширение на UIButton, которое добавляет к ним размытие и тень.Если я закомментирую содержимое функций и запустлю его, графический процессор будет работать вдвое интенсивнее, а воздействие батареи будет выше, чем в навигаторе отладки.

extension UIButton
{
    func addCircularBlur(radius:CGFloat)
    {

        let blur = UIVisualEffectView(effect: UIBlurEffect(style: .regular))
        blur.frame = self.bounds
        blur.layer.cornerRadius = radius * self.bounds.size.width
        blur.clipsToBounds = true
        blur.isUserInteractionEnabled = false
        blur.autoresizingMask = [.flexibleRightMargin, .flexibleLeftMargin, .flexibleBottomMargin, .flexibleTopMargin, .flexibleWidth, .flexibleHeight]

        self.insertSubview(blur, at: 0)
        if let imageView = self.imageView{
            self.bringSubview(toFront: imageView)
        }
    }

    func addShadow()
    {
        self.imageView?.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1.0).cgColor
        self.imageView?.layer.shadowOffset = CGSize(width:0.0, height:0.0)
        self.imageView?.layer.shadowOpacity = 0.1
        self.imageView?.layer.shadowRadius = 2.0
        self.imageView?.layer.masksToBounds = false
        self.imageView?.layer.cornerRadius = 4.0
    }

}

Вот как я вызываю эти функции.В этом примере используется кнопка из Interface Builder, но ее можно добавить программно к кнопке:

@IBOutlet weak var takePhotoBtn: UIButton!

// inside viewDidLoad:
takePhotoBtn.addCircularBlur(radius:0.5)
takePhotoBtn.addShadow()

Что из этого заставляет мое устройство работать лучше, когда размытие и тени включены?

...