美文网首页
xib嵌套的问题

xib嵌套的问题

作者: 大亮code | 来源:发表于2022-04-16 23:29 被阅读0次

问题的由来

问题一:我们经常会遇到在xib中的某一部分,我们在另外一个自定义View里面也能用到,我们可以将这部分重新搞一个xib来描述,多个用到的地方直接放上就可以.
问题二:我们的用xib描述一个View,有一个button我们需要自定义.并且这个按钮又是xib描述的
上面遇到的问题其实都是一个问题,xib的嵌套.

我们正常操作有什么问题呢?

我们正常的操作就是就是在当前的xib的子控件(又是用xib描述的)的类名就进行设置,就应该正常加载子控件.
然而实际效果不是这样的,我们这样操作就子控件xib描述的控件都不能正常显示.


Snip20220416_21.png

原因是什么呢?

控件不显示,我们去查一下,在当前控件的awakeFromeNib 方法中增加断点调试发现,他的子控件都是nil,这种表现显然是没有被初始化,我们必须来强制让他初始化加载一下.

如何解决这个问题?

这里我只讲比较简单理解的方法.
方法就是将和子控件同名的xib文件的File owner 设为子控件的类,特比需要注意的是这时xib的类名就不要进行绑定了.我们知道File owner的作用是将xib描述的控件当做 file owner 绑定类名的属性,这时我们就可以将xib描述的子控件加到当前类中.

具体当前的例子就是把MyView.xib这个文件描述的控件作为一个子控件,添加到MyView.h 和MyView.m描述的MyView类中.

具体代码如下:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super initWithCoder:aDecoder]) {
        UIView *containerView = [[[UINib nibWithNibName:@"MyView" bundle:nil] instantiateWithOwner:self options:nil] objectAtIndex:0];
        CGRect newFrame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
        containerView.frame = newFrame;
        [self addSubview:containerView];
     ##上面的代码已经可以了,如果还想在代码中添加一些控件或者做一些其他设置,我们可以在后面添加就可以.
        UISwitch *twoSwi = [UISwitch new];
        twoSwi.frame = CGRectMake(0, 0, 40, 30);
        [self addSubview:twoSwi];
        NSLog(@"MyView initWithCoder");
    }
    return self;
}

相关文章

  • xib嵌套的问题

    问题的由来 问题一:我们经常会遇到在xib中的某一部分,我们在另外一个自定义View里面也能用到,我们可以将这部分...

  • ios xib的多重继承实现

    对于重用xib进行开发的朋友,往往遇到一些很现实的问题,如xib嵌套,无法重用继承等,导致xib的数量泛滥,UI类...

  • xib嵌套xib

    近期迭代版本 有一个小需求 然后就想着用xib来写 然后就踩进了这个小坑因为嵌套的视图层有很多 所以需要UIVie...

  • xib嵌套xib

    xib定制类嵌套在另一个xib中的方法 我不是一个经常使用xib的人,总感觉xib所见即得,非常简单,昨天同事在写...

  • xib 原理、嵌套、可视化、继承

    xib嵌套 封装了一个view,它自带有xib。想让它能在其他xib、SB中使用 1.绑定xib的File Own...

  • xib问题宽度问题

    用xib定制的UITableViewCell中嵌套UICollectionView时,collectionview...

  • xib中嵌套使用xib

    在xib中嵌套使用xib,如果使用不正确会导致子xib最后加载不出来(具体原因可以查看第一篇参考文章)。可行的方法...

  • xib中嵌套使用xib

    在xib中嵌套使用xib,如果使用不正确会导致子xib最后加载不出来(具体原因可以查看第一篇参考文章)。可行的方法...

  • iOS:swift xib 嵌套

    https://www.jianshu.com/p/98f7ae035a7b[https://www.jiansh...

  • Xib嵌套Xib,可视化实例

    该文章为本人独创,转载请说明,谢谢合作 先上个效果图 可以明显的看到 Test View 和 Test View2...

网友评论

      本文标题:xib嵌套的问题

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