我陷入一个奇怪的问题。我有一个我添加了自动布局的视图。在该视图内,很少有标签是UILabel的子类。在该子类中,我重写了函数- (void)layoutSubviews
(该函数本身为空),现在的问题是有时该- (void)layoutSubviews
函数被多次调用。
相同的堆栈跟踪如下。
`#1 0x00824964 in -[UIView(CALayerDelegate) layoutSublayersOfLayer:] ()
#2 0x01f4682b in -[NSObject performSelector:withObject:] ()
#3 0x01c1045a in -[CALayer layoutSublayers] ()
#4 0x01c04244 in CA::Layer::layout_if_needed(CA::Transaction*) ()
#5 0x01c040b0 in CA::Layer::layout_and_display_if_needed(CA::Transaction*) ()
#6 0x01b6a7fa in CA::Context::commit_transaction(CA::Transaction*) ()
#7 0x01b6bb85 in CA::Transaction::commit() ()
#8 0x01b6c258 in CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) ()
#9 0x0296436e in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#10 0x029642bf in __CFRunLoopDoObservers ()
#11 0x02942254 in __CFRunLoopRun ()
#12 0x029419d3 in CFRunLoopRunSpecific ()
#13 0x029417eb in CFRunLoopRunInMode ()
#14 0x04b785ee in GSEventRunModal ()
#15 0x04b7842b in GSEventRun ()
#16 0x007b5f9b in UIApplicationMain () `
现在我无法从哪里调用它,因为堆栈跟踪未显示任何内容。任何人都可以在这里帮助跟踪递归的起源。
编辑:-似乎与自动布局的问题。如果我从视图中删除自动布局,则不再存在子布局问题。任何建议为什么会这样。
似乎是自动布局问题。每当我在视图上使用具有宽高比的自动布局时,就会出现问题。从自动布局中删除长宽比,问题就为我解决了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句