[ios] Move scale bar content size invalidation to map view

This commit is contained in:
Jesse Bounds
2017-10-24 17:40:47 -07:00
parent c9d7951e0d
commit 91eb595463
2 changed files with 8 additions and 3 deletions

View File

@@ -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];

View File

@@ -230,9 +230,6 @@ static const CGFloat MGLFeetPerMeter = 3.28084;
CGRectGetMinY(self.frame),
size.width,
size.height);
[self invalidateIntrinsicContentSize];
[self setNeedsLayout];
}
- (void)updateVisibility {