Глиф изображения не изменят цвета - PullRequest
0 голосов
/ 07 ноября 2018

Проблема : у меня три глифа с одного сайта (icons8.com), и когда я пытаюсь установить для них одинаковый цвет, только 1 работает правильно.

In-Depth : Поэтому я пытаюсь получить некоторые глифы, чтобы изменить цвет. Некоторые работают, а некоторые нет.

Здесь вы можете видеть, что глифы правильно устанавливают «желтый» оттенок. enter image description here

Но потом, когда я перехожу к другому представлению, которое вызывает ту же цветовую процедуру, оно не работает. Глифы остаются черными на знаке кофе и пива (два не работают), но футбольный мяч установлен правильно. Напоминание, все устанавливаются на желтый. enter image description here

Это код, который я использую, задайте цвет глифа в ячейке в пределах нормы cellForRowAt.

    cell.iconView.backgroundColor = eventAnnotation.markerTintColor
    cell.iconImageView.image = UIImage(named: eventAnnotation.imageName ?? "")
    cell.iconImageView.tintColor = eventAnnotation.glyphTintColor

Вот представление, которое я использую для создания маркеров.

class EventMarkerView: MKMarkerAnnotationView {
override var annotation: MKAnnotation? {
    willSet {
        guard let eventAnnotation = newValue as? EventAnnotation else { return }
        canShowCallout = true
        calloutOffset = CGPoint(x: -5, y: 5)
        rightCalloutAccessoryView = UIButton(type: .detailDisclosure)

        markerTintColor = eventAnnotation.markerTintColor
        glyphTintColor = eventAnnotation.glyphTintColor
        //glyphText = String(event.discipline.first!)
        if let imageName = eventAnnotation.imageName {
            glyphImage = UIImage(named: imageName)
        } else {
            glyphImage = nil
        }


        let detailLabel = UILabel()
        detailLabel.numberOfLines = 3
        detailLabel.font = detailLabel.font.withSize(12)
        detailLabel.text = eventAnnotation.subtitle
        detailCalloutAccessoryView = detailLabel

    }
}

}

Я также прикреплю различные наборы глифов, которые я использую.

"Пиво". не работает .

"Контур футбольного мяча". Работает .

"Кафе". не работает .

1 Ответ

0 голосов
/ 10 ноября 2018

Я нашел ответ в конце концов. Мне пришлось заставить изображение (обратите внимание на вторую строку) всегда использовать мой шаблон.

    cell.iconView.backgroundColor = eventAnnotation.markerTintColor
    cell.iconImageView.image = UIImage(named: eventAnnotation.imageName ?? "")?.withRenderingMode(.alwaysTemplate)
    cell.iconImageView.tintColor = eventAnnotation.glyphTintColor

Вот документация Apple для .withRenderingMode .

...