ios - didAddSubview 没有被调用
问题描述
我didAddSubview
的没有被调用。
这就是我正在做的事情。
在我的视图控制器中
- (void)viewDidLoad {
[super viewDidLoad];
SomeView *view = [[SomeView alloc] initWithFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))];
[self.view addSubview:view];
}
我的哪里SomeView
是 UI 视图(.h 文件)
#import <UIKit/UIKit.h>
@interface DyteMeetingView : UIView
@end
我didAddSubview
喜欢这个
- (void)didAddSubview:(UIView *)subview{
[super didAddSubview:subview];
[self someFunc];
}
我放置didAddSubview
了调试器,但调试器从未到达这里,因此 [self someFunc];
也没有被调用。
由于didAddSubview
是 UI 视图的生命周期方法,因此我也不会从任何地方调用它。
有人可以帮我弄清楚我错过的概念/我可能做错了什么吗?
PS:我没有任何用于 UIView 的 xib 文件。
PS:也故意添加了 swift 标签,因为没有大量代码,我相信 swift 开发人员将能够理解问题/代码并可能能够帮助我。
解决方案
didAddSubview
在SomeView
将子视图添加到 的实例SomeView
时将调用 in ,但这不是您在这里所做的。您正在添加 aSomeView
作为另一个视图的子视图。
你想要didMoveToSuperview
; 在此方法中,您可以使用 的superview
属性self
来标识它移动到的视图。
推荐阅读
- javascript - React组件回调实现方法有什么区别
- sharepoint-2013 - 抱歉,尝试创建新列表视图时出现错误
- sql - 如何按月或按月备份数据库中的旧数据?
- javascript - 引导选项卡活动选项卡颜色
- r - 用闪亮的清除日期范围输入
- python - 为什么加入列表必须位于非捕获组中才能使正则表达式能够解释它?
- javascript - Jquery Datepicker不适用于克隆功能
- tomcat9 - Tomcat 9 开始问题得到以下问题复制 bootstract 和 tomcat-juli 以及 catalina home 上的包装 jars
- scala - 如何判断我是在 Ammonite repl 下运行还是在脚本中运行?
- reactjs - 解决 API 调用的竞争条件