Есть ли способ получить размер дочернего представления в SwiftUI?
Я в основном ищу UIKit эквивалент:
self.child.frame.origin.x -= self.child.intrinsicContentSize.width/2.0
Я не думаю, что GeometryReader будет работать, поскольку он возвращает доступный размер в родительском элементе.
[Редактировать] Я обнаружил, что можно получить и сохранить размеры, используя .alignmentGuide(_, computeValue:)
, хотя это определенно хак.
LessonSliderText(text: self.textForProgress(self.progress), color: self.completedColor)
.alignmentGuide(HorizontalAlignment.leading) { (dimensions) -> Length in
self.textSize = CGSize(width: dimensions.width, height: dimensions.height)
return 0
}
.offset(x: self.width*self.currentPercentage - self.textSize.width / 2.0)
.offset(y: -self.textSize.height/2.0)
.animation(nil)
.opacity(self.isDragging ? 1.0 : 0.0)
.animation(.basic())