Animation with CGAffineTransformScale cancels application

I am trying to implement a “disappearing” url bar when users scroll in a webview. The function below is called in - (void)scrollViewDidScroll:(UIScrollView *)scrollView .

For certain web pages, the application is completely frozen and uses a 100% processor. From trial and error, we concluded that removing CGAffineTransformScale fixes this. I am trying to understand why this is happening, and how else could I implement the same functionality.

 - (void)collapseQueryBox { _URLBarState = CLQURLBarStateCollapsing; _queryBoxViewHeightConstraint.constant = COLLAPSED_QUERYBOX_HEIGHT; [UIView animateWithDuration:COLLAPSE_ANIMATION_DURATION animations:^{ _webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); _queryLabel.transform = CGAffineTransformScale(_queryLabel.transform, COLLAPSE_ANIMATION_SCALE_FACTOR, COLLAPSE_ANIMATION_SCALE_FACTOR); _queryLabel.layer.backgroundColor = [UIColor clearColor].CGColor; [_browserContainerView layoutIfNeeded]; } completion:^(BOOL finished) { _URLBarState = CLQURLBarStateCollapsed; }]; } 

Full stack trace of a paused application in a frozen state:

 * thread #1: tid = 0xcbf9f, 0x025b40be libobjc.A.dylib`objc_msgSend + 26, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x025b40be libobjc.A.dylib`objc_msgSend + 26 frame #1: 0x008cf411 Foundation`-[NSISEngine variableToWorkOnAmongVariablesWithIntegralizationViolationsIgnoringLostCauses:varsAlreadyAdjusted:] + 491 frame #2: 0x00a41ea3 Foundation`__44-[NSISEngine fixupIntegralizationViolations]_block_invoke + 1285 frame #3: 0x00a4368c Foundation`-[NSISEngine withBehaviors:performModifications:] + 107 frame #4: 0x008cf21a Foundation`-[NSISEngine withoutOptimizingAtEndRunBlockWithAutomaticOptimizationDisabled:] + 48 frame #5: 0x008cf1d9 Foundation`-[NSISEngine fixupIntegralizationViolations] + 96 frame #6: 0x008ceef8 Foundation`-[NSISEngine optimize] + 204 frame #7: 0x008d57e3 Foundation`-[NSISEngine constraintDidChangeSuchThatMarker:shouldBeReplacedByMarkerPlusDelta:] + 336 frame #8: 0x00a43e23 Foundation`-[NSISEngine tryToChangeConstraintSuchThatMarker:isReplacedByMarkerPlusDelta:undoHandler:] + 489 frame #9: 0x00a4b2d5 Foundation`-[NSLayoutConstraint _tryToChangeContainerGeometryWithUndoHandler:] + 578 frame #10: 0x008c8d4f Foundation`-[NSLayoutConstraint _setSymbolicConstant:constant:] + 384 frame #11: 0x008cb6a1 Foundation`-[NSLayoutConstraint setConstant:] + 52 frame #12: 0x00e398a5 UIKit`-[UIScrollView setContentSize:] + 566 frame #13: 0x01030a5a UIKit`-[UITableViewCell _updateWrapperContentInset] + 117 frame #14: 0x0103963a UIKit`-[UITableViewCell setFrame:] + 701 frame #15: 0x00e1b7b0 UIKit`-[UIView(Geometry) _applyAutoresizingMaskWithOldSuperviewSize:] + 840 frame #16: 0x00e1c552 UIKit`-[UIView(Geometry) _resizeWithOldSuperviewSize:] + 290 frame #17: 0x00e1c5aa UIKit`-[UIView(Geometry) resizeWithOldSuperviewSize:] + 80 frame #18: 0x00e1b185 UIKit`__46-[UIView(Geometry) resizeSubviewsWithOldSize:]_block_invoke + 87 frame #19: 0x028a1d86 CoreFoundation`__53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 102 frame #20: 0x028a1c5f CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 239 frame #21: 0x00e1b115 UIKit`-[UIView(Geometry) resizeSubviewsWithOldSize:] + 149 frame #22: 0x00e19c4e UIKit`-[UIView(Geometry) setFrame:] + 559 frame #23: 0x00e1b7b0 UIKit`-[UIView(Geometry) _applyAutoresizingMaskWithOldSuperviewSize:] + 840 frame #24: 0x00e1c552 UIKit`-[UIView(Geometry) _resizeWithOldSuperviewSize:] + 290 frame #25: 0x00e1c5aa UIKit`-[UIView(Geometry) resizeWithOldSuperviewSize:] + 80 frame #26: 0x00e1b185 UIKit`__46-[UIView(Geometry) resizeSubviewsWithOldSize:]_block_invoke + 87 frame #27: 0x028a1d86 CoreFoundation`__53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 102 frame #28: 0x028a1c5f CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 239 frame #29: 0x00e1b115 UIKit`-[UIView(Geometry) resizeSubviewsWithOldSize:] + 149 frame #30: 0x00eadc1a UIKit`-[UITableView resizeSubviewsWithOldSize:] + 98 frame #31: 0x00e1c819 UIKit`-[UIView(Geometry) setBounds:] + 510 frame #32: 0x00e39627 UIKit`-[UIScrollView setBounds:] + 1036 frame #33: 0x00eadf5f UIKit`-[UITableView setBounds:] + 260 frame #34: 0x00e1befd UIKit`-[UIView(Geometry) _applyISEngineLayoutValues] + 324 frame #35: 0x00e1c4c0 UIKit`-[UIView(Geometry) _resizeWithOldSuperviewSize:] + 144 frame #36: 0x00e457bb UIKit`-[UIScrollView _resizeWithOldSuperviewSize:] + 73 frame #37: 0x00e1c5aa UIKit`-[UIView(Geometry) resizeWithOldSuperviewSize:] + 80 frame #38: 0x00e1b185 UIKit`__46-[UIView(Geometry) resizeSubviewsWithOldSize:]_block_invoke + 87 frame #39: 0x028a1d86 CoreFoundation`__53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 102 frame #40: 0x028a1c5f CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 239 frame #41: 0x00e1b115 UIKit`-[UIView(Geometry) resizeSubviewsWithOldSize:] + 149 frame #42: 0x0145961c UIKit`-[UIView(AdditionalLayoutSupport) _is_layout] + 158 frame #43: 0x00e20336 UIKit`-[UIView(Hierarchy) layoutSubviews] + 80 frame #44: 0x00e2d964 UIKit`-[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 frame #45: 0x025b682b libobjc.A.dylib`-[NSObject performSelector:withObject:] + 70 frame #46: 0x01df345a QuartzCore`-[CALayer layoutSublayers] + 148 frame #47: 0x01de7244 QuartzCore`CA::Layer::layout_if_needed(CA::Transaction*) + 380 frame #48: 0x01de70b0 QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 26 frame #49: 0x01d4d7fa QuartzCore`CA::Context::commit_transaction(CA::Transaction*) + 294 frame #50: 0x01d4eb85 QuartzCore`CA::Transaction::commit() + 393 frame #51: 0x01d4f258 QuartzCore`CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 92 frame #52: 0x027ed36e CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 frame #53: 0x027ed2bf CoreFoundation`__CFRunLoopDoObservers + 399 frame #54: 0x027cb254 CoreFoundation`__CFRunLoopRun + 1076 frame #55: 0x027ca9d3 CoreFoundation`CFRunLoopRunSpecific + 467 frame #56: 0x027ca7eb CoreFoundation`CFRunLoopRunInMode + 123 frame #57: 0x041895ee GraphicsServices`GSEventRunModal + 192 frame #58: 0x0418942b GraphicsServices`GSEventRun + 104 frame #59: 0x00dbef9b UIKit`UIApplicationMain + 1225 
+6
source share

Source: https://habr.com/ru/post/971934/


All Articles