当 创建一个字控件View ,并且子空间view显示view 超过自身的view时。可以将子空间的View 添加到父控件
1.创建父控件变量 supView
- 【supView addSubView View】;
在自定义View 时,不要把全部东西都写在init内部。。
特别是代理和与父控件有关系的数据传递时,要特别注意这一点。。
比如: LeftNavView *leftNav = [[LeftNavView alloc]init];
leftNav.owner = self;
leftNav.supView = self.navigationController.view;
[leftNav defauleSetting];
其中 初始化 leftNavView 时,如果将
import "LeftNavView.m"
-(instancetype)init
{
if (self = [super init]) {
_coverView = [[CoverView alloc]initWithViewCellHeight:ScreenHight num:1];
_coverView.hidden = NO;
[_supView addSubview:_coverView];
self.delegate = self;
self.dataSource = self;
[self CreatSwipe];
[self CreatHeard]
}
return self;
}
这样写,在视图初始化的时候,就会将代码全部加载进去。造成 leftNav.supView = self.navigationController.view; 这句代码不会被执行,因此。所有与supview相关的代码也无意义。
应该这样写:
在主控制器 : LeftNavView *leftNav = [[LeftNavView alloc]init];
leftNav.owner = self;
leftNav.supView = self.navigationController.view;
[leftNav defauleSetting];
而在次级视图上声明一个方法
-(void)defauleSetting;
在这个方法,完成view内容的添加。。
网友评论