Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS7中-(void)LayoutSubview中的递归,但在iOS8中工作良好_Ios_Objective C - Fatal编程技术网

iOS7中-(void)LayoutSubview中的递归,但在iOS8中工作良好

iOS7中-(void)LayoutSubview中的递归,但在iOS8中工作良好,ios,objective-c,Ios,Objective C,我陷入了一个奇怪的问题。 我有一个视图,其中添加了自动布局。在这个视图中,很少有标签是UILabel的子类。 在该子类中,i重写函数-(void)layoutSubviews(函数本身为空) 现在的问题是,有时会多次调用-(void)layoutSubviews函数 其堆栈跟踪如下所示 `#1 0x00824964 in -[UIView(CALayerDelegate) layoutSublayersOfLayer:] () #2 0x01f4682b in -[NSObject perfo

我陷入了一个奇怪的问题。 我有一个视图,其中添加了自动布局。在这个视图中,很少有标签是UILabel的子类。 在该子类中,i重写函数
-(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 () `
现在我无法理解从哪里调用它,因为堆栈跟踪没有显示任何内容。 这里有人能帮忙追踪递归的起源吗


编辑:-这似乎是自动布局的问题。如果从视图中删除自动布局,则不再存在子布局问题。任何关于发生这种情况的建议。

这似乎是自动布局的问题。 每当我在视图上使用纵横比自动布局时,问题就会出现。
从自动布局中删除纵横比,问题就可以为我解决。

您必须调用
[super layoutSubviews]
在被重写的
layoutSubviews
@rmaddy实现中,您也已经尝试过了。但不起作用。仍然想知道这个LayoutSubView在哪里被递归调用。递归在哪里?您发布的堆栈跟踪没有显示您提到的递归。并发布一些相关代码。@rmaddy这是我在LayoutSubView中放置断点并命中断点时的堆栈。请查看编辑后的注释。