使用xib上的View的几种情况分析

使用xib搭建UI界面,因为所见即所得。搭建一些简单切无规律的UI比较方便。所以合理使用xib可以加快我们平时的开发进度。让我们更快更方便的完成项目中的工作。在这里整理了几种加载xib上View的方法。整理如下。
一、直接将xib搭建到storyBoard上
方法一;通过[[NSBundle mainBundle]loadNibNamed:@"XibView" owner:self options:nil];
1.创建xibView.xib和XibView.h和.m文件。将xibView.xib的file's Owner拖动到.m上


使用xib上的View的几种情况分析_第1张图片
file's Own.png

.m文件内容如下

@property (strong, nonatomic) IBOutlet UIView *baseView;

@end

@implementation XibView

- (instancetype)initWithCoder:(NSCoder *)aDecoder{
    if (self = [super initWithCoder:aDecoder]){
        [self initUI];
    }
    return self;
}

- (void)initUI{
    [[NSBundle mainBundle]loadNibNamed:@"XibView" owner:self options:nil];
    [self addSubview:self.baseView];
}

- (IBAction)btnClick:(id)sender {
    NSLog(@"按钮被点击了");
}

2.在StoryBoard上创建View。设置view的约束。并且将view的类型设置为XibView
方式二:
1.创建xibView.xib和XibView.h和.m文件将xib文件的placeHolder类型设置为xibView
.m文件代码如下

@interface XibSecond ()

@property (weak, nonatomic) IBOutlet UIButton *btnClick;

@end

@implementation XibSecond

- (instancetype)initWithCoder:(NSCoder *)aDecoder{
    if (self = [super initWithCoder:aDecoder]){
        [self initUI];
    }
    return self;
}

- (IBAction)btnClick:(id)sender {
    NSLog(@"test");
}

- (void)initUI{
    XibSecond *seconView = [[[NSBundle mainBundle]loadNibNamed:@"XibSecond" owner:self options:nil]firstObject];
    [self addSubview:seconView];
}

方法三:通过XXNibBridge
1.导入#import ,同时让.h文件遵守协议
2.将xib的customClass设置为XibThird


使用xib上的View的几种情况分析_第2张图片
image.png

3.将stordBoard上的view的类型设置为XibThird

二、将xibView直接添加到视图上。
1.创建thirdViewManager工具类。创建类方法
thirdViewManager.h文件

#import 
#import "XibThird.h"

@interface BaseViewManager : NSObject

+ (XibThird *)createThirdView;

@end

thirdViewManager.m文件

#import "BaseViewManager.h"

@implementation BaseViewManager

+ (XibThird *)createThirdView{
    XibThird *thirdView = [[[NSBundle mainBundle]loadNibNamed:@"XibThird" owner:self options:nil]firstObject];
    return thirdView;
}

@end

将xib的customClass设置为XibThird
在controller的使用方法为

XibThird *thirdVeiw = [BaseViewManager createThirdView];
    [self.view addSubview:thirdVeiw];

然后可以将XibThird的action方法在XibThird.m文件中进行设置

  • (IBAction)btnClick:(id)sender {
    NSLog(@"click");
    }
    显示效果为


    使用xib上的View的几种情况分析_第3张图片
    image.png

    同时点击按钮效果为

2018-01-08 21:37:07.571626+0800 XibTest[7943:294468] click
2018-01-08 21:37:07.754162+0800 XibTest[7943:294468] click
2018-01-08 21:37:07.915496+0800 XibTest[7943:294468] click
2018-01-08 21:37:08.113700+0800 XibTest[7943:294468] click
2018-01-08 21:37:08.288262+0800 XibTest[7943:294468] click

可以看到xib上的按钮点击事件可以正常执行。

你可能感兴趣的:(使用xib上的View的几种情况分析)