iOS使用- (instancetype)initWithFrame:(CGRect)frame初始化xib文件

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容