IOS: мне нужно заполнить половину UIImage - PullRequest
0 голосов
/ 16 декабря 2018

У меня UIImage star.

Мне нужно программно залить половину синего цвета.Я пытаюсь это:

extension UIImage {

public func maskWithColor(color: UIColor, factor: CGFloat) -> UIImage 
{

        UIGraphicsBeginImageContextWithOptions(CGSize(width: 
        self.size.width/2, height: self.size.height), false, 
        self.scale)
        let context = UIGraphicsGetCurrentContext()!

        let rect = CGRect(origin: CGPoint.zero, size: size)

        color.setFill()
        self.draw(in: rect)

        context.setBlendMode(.sourceIn)
        context.fill(rect)

        let resultImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return resultImage
    }

}

И результат этого: Half stars

Но результат как: this

Мне нужна одна половина - синий и другой серый.Как я могу это сделать?

1 Ответ

0 голосов
/ 17 декабря 2018

Установите этот модуль

pod 'Cosmos', '~> 17.0'

Используйте вот так

1) Перетащите объект "Просмотр" из библиотеки объектов в свою раскадровку.Добавить элемент управления представлением в инспекторе атрибутов Введите описание изображения здесь

2) Установите класс представления в CosmosView в Инспекторе удостоверений.Установите для его свойства модуля значение Cosmos, если вы использовали методы установки Carthage или CocoaPods.Добавить ракурс «Космос» на раскадровку Введите описание изображения здесь

3) Настройте внешний вид Космоса в Инспекторе атрибутов.Если раскадровка не отображает звезды, нажмите «Обновить все виды» в меню «Редактор».Настройте внешний вид космоса в инспекторе атрибутов в XCode. Введите описание изображения здесь

...