Попытка изменить размер UIViewRepresentable из UIImage в swiftUI - PullRequest
1 голос
/ 12 июля 2020

У меня есть метод resize:

//
//  ImageView.swift
//  fairytales
//
//  Created by Justin Zaun on 7/12/20.
//  Copyright © 2020 JGZ. All rights reserved.
//

import SwiftUI

struct ImageView: UIViewRepresentable {
    
    var name: String
    
    fileprivate var imageView: UIImageView = UIImageView()
    fileprivate var originalImage: UIImage
    

    init(name: String) {
        self.name = name
        self.originalImage = UIImage(named: name)!
    }
    
    func makeUIView(context: Context) -> UIImageView {
        imageView.image = self.originalImage

        return imageView;
    }
    
    func updateUIView(_ uiView: UIImageView, context: Context) {
    }
    
    fileprivate func scaledImage(width: CGFloat, height: CGFloat) -> UIImage {
        let size = CGSize(width: width, height: height)
        if (self.originalImage.size == size) {
            return self.originalImage
        }
        
        UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
        self.originalImage.draw(in: CGRect(x: 0, y: 0, width: width, height: height))
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        
        return image!;
    }
    
    func resize(width: CGFloat, height: CGFloat) -> some View {
        self.imageView.image = scaledImage(width: width, height: height)
        print(self.imageView.image!.size)

        return self.frame(width: width, height: height)
    }
}

Внутри представления я пытаюсь ...

ImageView(name: "Letter-T")
    .resize(width: 100, height: 100)

Оператор печати печатает правильный размер, но на экране размер изображения не изменяется. Что я делаю не так?

...