[ios] Move scale bar content size invalidation to map view
This commit is contained in:
@@ -1015,6 +1015,14 @@ public:
|
||||
// This gets called when the view dimension changes, e.g. because the device is being rotated.
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
// Calling this here instead of in the scale bar itself because if this is done in the
|
||||
// scale bar instance, it triggers a call to this this `layoutSubviews` method that
|
||||
// calls `_mbglMap->setSize()` just below that triggers rendering update which triggers
|
||||
// another scale bar update which causes a rendering update loop and a major performace
|
||||
// degradation. The only time the scale bar's intrinsic content size _must_ invalidated
|
||||
// is here as a reaction to this object's view dimension changes.
|
||||
[self.scaleBar invalidateIntrinsicContentSize];
|
||||
|
||||
[super layoutSubviews];
|
||||
|
||||
[self adjustContentInset];
|
||||
|
||||
@@ -230,9 +230,6 @@ static const CGFloat MGLFeetPerMeter = 3.28084;
|
||||
CGRectGetMinY(self.frame),
|
||||
size.width,
|
||||
size.height);
|
||||
|
||||
[self invalidateIntrinsicContentSize];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)updateVisibility {
|
||||
|
||||
Reference in New Issue
Block a user