2016-08-03 35 views
0

Ich habe eine NSCollectionView, welche Elemente dynamisch sortiert sind.Wie erzwinge ich, dass NSView-Subviews die Größe von "jetzt" ändern?

Wenn das Element von zurückgegeben wird [Kollektion makeItemWithIdentifier: reuseIdentifier forIndexPath: indexPath] seiner Ansicht hat die gewünschte Größe

ABER

die Subviews sind noch nicht entsprechend bemessen, sie immer noch die xib Größen haben.

Das Problem ist, dass beim Festlegen der Eigenschaften des Elements, ich die endgültige Größe aller Unteransichten kennen muss (weil ich einige Bilder optimieren).

Wie kann ich die Größe der Unteransichten ändern, nachdem das Element von makeItemWithIdentifier abgerufen wurde: forIndexPath:?

Oder vielleicht, wie kann ich ihre zukünftige Größe wissen?

Oder eine andere Lösung?

Antwort

0

Endlich begann ich die optimierte Bildberechnung nicht zu dem Zeitpunkt, als das Objekt mit makeItemWithIdentifier erstellt wurde: reuseIdentifier forIndexPath: indexPath :, weil ich keine Möglichkeit fand, die endgültige Größe zu kennen.

Ich starte die Bild optimierte Bildberechnung beim ersten drawRect: call.

Während dieses Aufrufs zeichne ich schnell ein nicht optimiertes Bild und starte die optimierte Bildberechnung in einem Hintergrundthread. Wenn dies abgeschlossen ist, sende ich eine setNeedsDisplay: YES-Nachricht an die Ansicht, und das optimierte Bild wird dann angezeigt.