iOS SwiftUI uiviewпредставляемое обновление UIView узнайте, какие свойства на самом деле изменились?

#ios #swift #swiftui

Вопрос:

Я задавался вопросом, как проверить, какие @Binding и @StateObject в uiviewпредставляемом действительно изменились при вызове updateUIView?

Я внедряю MKMapView и не хочу постоянно обновлять аннотации, только когда этот объект состояния изменился.

Так что я бы с удовольствием сделал что-нибудь подобное:

 struct MapView: UIViewRepresentable
{
    @ObservedObject var annotations:MyAnnotations
    @ObservedObject var region:MKCoordinateRegion

    func updateUIView(_ view: MKMapView, context: Context)
    {
        if annotations.changed == true
        {
            // ... update annotations
        }
        
        if (region.changed == true
        {
            // ... update region
        }
    }
}
    
 

Постоянное обновление аннотаций создает небольшую помеху для рендеринга, которой я хотел бы избежать. Это, вероятно, довольно общие вопросы о представлениях UIView, предназначенных для использования для оптимизированного обновления.

Комментарии:

1. Я провел последние несколько часов, задаваясь одним и тем же вопросом: тебе удалось это выяснить?