Добавьте шахматную доску к прозрачным частям UIImageView - PullRequest
1 голос
/ 13 февраля 2020

У меня есть UIImageView, который показывает UIImage, имеющий режим содержимого как Соотношение сторон .

Мне нужно указать прозрачные области изображений на шахматной доске , Как получить квадраты одинакового размера, независимо от размера изображения?

extension UIImage {
    func withChessboard() -> UIImage? {
        var image: UIImage?
        let l = 4

        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        let imageRect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
        if let context = UIGraphicsGetCurrentContext() {
            context.setFillColor(UIColor.lightGray.cgColor)
            for row in 0 ..< Int(size.width) {
                for col in 0 ..< Int(size.height) {
                    if (row + col) % 2 == 0 {
                        context.fill(CGRect(x: col * l, y: row * l, width: l, height: l))
                    }
                }
            }

            draw(in: imageRect, blendMode: .normal, alpha: 1.0)
            image = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            return image
        }
        return nil
    }
}

Теперь у меня есть это (первое изображение меньше)

enter image description here

и это:

enter image description here

РЕДАКТИРОВАТЬ , используя решение, предложенное Трент, я получил это. Мне нужно, чтобы плитки покрывали только размер изображения, а не весь просмотр изображения. enter image description here

1 Ответ

0 голосов
/ 13 февраля 2020

Похоже, этот существующий пост имеет четкий ответ на ваше решение.

В основном покажет, как создать шаблон с UIColor и установить его как backgroundColor из UIImageView.

Дайте мне знать, если это поможет! Если нет, я бы хотел услышать почему.

...