OC开发

通过XIB设置UIView

2017-05-31  本文已影响113人  f170d29955a5

1、首先创建MyAlertView继承于UIView

会生成.m和.h文件

2、新建XIB文件

新建->User Interface->View

会生成XIB文件

3、在XIB文件上拖控件设置界面

4、和XIB关联

选中XIB文件,设置Class关联为创建的文件

设置Size

5、加载XIB文件到界面显示

方法一:

在使用View的地方导入头文件来使用。

MyAlertView * alert = [[[NSBundle mainBundle] loadNibNamed:@"MyAlertView" owner:self options:nil] lastObject];

[self.view addSubview:alert];

这样的话不能设置Frame。。。好尴尬。。。

方法二:重写初始化方法来设置Frame

在MyAlertView.m重写初始化方法。

-(instancetype)initWithFrame:(CGRect)frame{

        self = [super initWithFrame:frame];

        if (self) {

        self = [[[NSBundle mainBundle] loadNibNamed:@"MyAlertView" owner:self options:nil] lastObject];

        }

      return self ;        }

在使用View的地方导入头文件来使用。

MyAlertView * alert = [[MyAlertView alloc] initWithFrame:CGRectMake(50, 50, SCREENWIDTH - 100, 100)];

[self.view addSubview:alert];

但是。。。出问题了。。。

问题:在使用View的地方初始化的时候设置了Frame,但是Frame还是没有改变。。。在MyAlertView.m初始化方法里面打印Frame,Frame是自己初始化的时候设置的。。。

是什么原因导致的呢?

我也不知道。。。

但是解决办法还是有的:

重写

-(void)drawRect:(CGRect)rect

{

        //在这里面重新设置一下self.frame

}

上一篇下一篇

猜你喜欢

热点阅读