ios开发布局

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。

上一篇下一篇

猜你喜欢

热点阅读