iOS使用- (instancetype)initWithFra
2018-06-27 本文已影响0人
古建辉
1.首先我们创建一个自定视图TestView,更改xib的File's Owner,指向TestView
7C72B864-9AFD-486F-BE6E-E4EE5296ACFB.png
2.为xib中已存在的view绑定IBOutlet,命名为contentView
图片.png
#import <UIKit/UIKit.h>
@interface TestView : UIView
/**
这个就是xib文件的view
*/
@property (strong, nonatomic) IBOutlet UIView *contentView;
@end
3.最后在实现类里面重写加载xib文件
#import "TestView.h"
@implementation TestView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor redColor];
//加载xib文件 当前xib 文件
[[NSBundle mainBundle] loadNibNamed:@"TestView" owner:self options:nil];
self.contentView.frame = self.bounds;
[self addSubview:self.contentView];
}
return self;
}
@end
现在我们就直接使用- (instancetype)initWithFrame:(CGRect)frame来直接初始化xib了。这种实现方式其实就相当于把xib的视图添加在另一个视图上面,通过控制它的父视图的frame来实现控制xib的,差不多相当于Tableview的contentView。