如何当一个UIView改变尺寸检测?
-
23-09-2019 - |
题
我有一个初始化有正确的框架UIViewController
,但在我的代码的某个地方框架有错位,我很难找到在哪里。
在这样的情况下,它通常是在方便调试器watch
一个变量,但是我没有在我的变量视图访问控制器 - >视图 - >框架属性的方式,因为它不是一个变量,它的一个属性(令人惊奇的是)
钻井入变量了UIView显示示出了一些事情,但没有我可以涉及到框架上,我想也许这将是在layer
但它不是
有没有什么方法来监视在私有API的变化?我想不会,因为变数本质上是“隐藏”,所以你不能准确定义如何watch
。
另外,可能我用什么样的方法呢?我已经试着子类的UIView,设置我UIViewController的观点指向这个子类,并上破SETFRAME方法,但它似乎并没有工作。
编辑:子类的UIView方法没有工作,我不得不视图以点设置为viewDidLoad
我的测试子类,而不是init
方法。离开这个问题打开因为我不知道这是接近这样的问题...
其他提示
子类你要跟踪并重写SETFRAME方法的观点:
@implementation MyTableView
- (void)setFrame:(CGRect)frame;
{
NSLog(@"%@", frame);
[super setFrame:frame];
}
@end
然后使用调试器来断点添加到它,并检查当它被调用。最终,你会看到当帧被改变,哪里的变化从何而来。
您可以创建一个实例变量,view2的,只是它分配给您的视图您loadView
方法。这应该让你看它像一个正常的变量。
不隶属于 StackOverflow