美文网首页
通过XIB设置UIView

通过XIB设置UIView

作者: 小鲜肉老腊肉都是肉 | 来源:发表于2019-10-14 10:30 被阅读0次

1、首先创建MyAlertView继承于UIView

image

会生成.m和.h文件

image

2、新建XIB文件

新建->User Interface->View

image

会生成XIB文件

image

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

4、和XIB关联

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

image

设置Size

image

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

}

image

相关文章

网友评论

      本文标题:通过XIB设置UIView

      本文链接:https://www.haomeiwen.com/subject/rdglmctx.html