Кнопка Swift становится синей без причины - PullRequest
0 голосов
/ 04 мая 2018

У меня есть кнопка swift синего цвета, и я понятия не имею, почему. Я использую один и тот же код в двух разных viewcontrollers и один почему-то синий.

Я все еще новичок в разработке под iOS, поэтому мне интересно, кто-нибудь знает что-нибудь об этом?

enter image description here enter image description here

Они оба используют одну и ту же функцию. И нет никаких активов, которые синего цвета. Я попробовал это с другим символом, и это не было синим.

Я также проверил, было ли какое-либо изменение цвета осуществлено на кнопке, но она не имеет вызовов для нее.

private func prepareSearchView() {
        searchShadowView.backgroundColor = .white

        searchShadowView.layer.shadowColor = UIColor.black.cgColor
        searchShadowView.layer.shadowOffset = CGSize(width: 1, height: 1)
        searchShadowView.layer.shadowOpacity = 0.3
        searchShadowView.layer.shadowRadius = 2
        searchShadowView.layer.masksToBounds =  false
        searchShadowView.layer.cornerRadius = 2

        view.addSubview(searchShadowView)
        view.bringSubview(toFront: searchShadowView)

        searchShadowView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            searchShadowView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor, constant: 20),
            searchShadowView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
            searchShadowView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
            searchShadowView.heightAnchor.constraint(equalToConstant: searchViewHeight)
            ])

        searchView.backgroundColor = .white
        searchView.layer.borderWidth = 1
        searchView.layer.borderColor = UIColor.segmentedControlBackgroundGray.cgColor

        view.addSubview(searchView)
        view.bringSubview(toFront: searchView)

        searchView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            searchView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor, constant: 20),
            searchView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
            searchView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
            searchView.heightAnchor.constraint(equalToConstant: searchViewHeight)
            ])

        let glassImageView = UIImageView(image: #imageLiteral(resourceName: "glassIcon"))
        searchView.addSubview(glassImageView)
        glassImageView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            glassImageView.topAnchor.constraint(equalTo: searchView.topAnchor, constant: 14),
            glassImageView.leadingAnchor.constraint(equalTo: searchView.leadingAnchor, constant: 20),
            glassImageView.bottomAnchor.constraint(equalTo: searchView.bottomAnchor, constant: -14),
            glassImageView.widthAnchor.constraint(equalToConstant: 19)
            ])

        let searchButton = UIButton(type: .custom)
        searchButton.setTitle("Where do you want to eat?", for: .normal)
        searchButton.setTitleColor(.placeHolderGray, for: .normal)
        searchButton.titleLabel?.font = UIFont.mediumFont(ofSize: 15.0)
        searchButton.titleLabel?.adjustsFontSizeToFitWidth = true
        searchButton.addTarget(self, action: #selector(searchButtonPressed), for: .touchUpInside)

        searchView.addSubview(searchButton)
        searchButton.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            searchButton.topAnchor.constraint(equalTo: searchView.topAnchor),
            searchButton.leadingAnchor.constraint(equalTo: glassImageView.trailingAnchor, constant: 10),
            searchButton.heightAnchor.constraint(equalTo: searchView.heightAnchor),
            ])

        filterButton.setImage(#imageLiteral(resourceName: "filterIcon"), for: .normal)
        filterButton.addTarget(self, action: #selector(filterButtonPressed), for: .touchUpInside)
        searchView.addSubview(filterButton)
        filterButton.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            filterButton.topAnchor.constraint(equalTo: searchView.topAnchor),
            filterButton.leadingAnchor.constraint(equalTo: searchButton.trailingAnchor, constant: 10),
            filterButton.bottomAnchor.constraint(equalTo: searchView.bottomAnchor),
            filterButton.trailingAnchor.constraint(equalTo: searchView.trailingAnchor, constant: -20),
            filterButton.widthAnchor.constraint(equalToConstant: 25)
            ])
    }

1 Ответ

0 голосов
/ 04 мая 2018

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

filterButton.setImage(#imageLiteral(resourceName: "filterIcon").withRenderingMode(.alwaysOriginal), for: .normal)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...