Проблема с изменением размера изображения. Становится синим - PullRequest
2 голосов
/ 18 июня 2019

У меня странная проблема, когда если созданного мной изображения с изменяемым размером (пользовательский вид) нет в NavigationButton, то оно работает нормально, но если оно в нем, то изображение по-прежнему имеет хороший размер, но оно становится полностью синий. Кто-нибудь знает, что не так?

struct DynamicallyResizableImage: View {
    let imageName: String
    let height: CGFloat
    let width: CGFloat

    init(imageName: String, height: CGFloat? = nil, width: CGFloat? = nil) {
        self.imageName = imageName
        let imageSize = UIImage(named: imageName)!.size

        guard let height = height else {
            if let width = width {

                self.width = width
                self.height = imageSize.height * (width/imageSize.width)
                return
            }
            self.height = 0
            self.width = 0
            return
        }

        if let width = width {
            self.height = height
            self.width = width
            return
        }

        self.height = height
        self.width = imageSize.width * (height/imageSize.height)
    }

    var body: some View {
        Image(imageName)
            .resizable()
            .frame(width: width, height: height)
    }

}
NavigationButton(destination: PicturePreviewView(imageName: "IMG_4955")) {
                        DynamicallyResizableImage(imageName: "IMG_4955", height: 200)
                    }

Когда не встроено в NavigationButton, все отлично работает. При встраивании в NavigationButton изображение становится заполненным синим цветом.

Кто-нибудь знает, как это исправить? Спасибо !!!

1 Ответ

1 голос
/ 18 июня 2019

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

Image(imageName)
            .renderingMode(.original)
            .resizable()
            .frame(width: width, height: height)
...