美文网首页OC开发
通过XIB设置UIView

通过XIB设置UIView

作者: f170d29955a5 | 来源:发表于2017-05-31 11:13 被阅读113次

    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

    }

    相关文章

      网友评论

        本文标题:通过XIB设置UIView

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