用xib自定义 可以在xib中使用的view

本文介绍如何通过xib创建一个自定义View,包含一个Label和Slider。当Slider移动时,Label的文本会根据Slider的值动态更新。自定义过程包括:创建xib文件,设置File's Owner类型,重写initWithCoder:方法,最后在其他xib中使用这个自定义组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用xib自定义 可以在xib中使用的view

本文将实现一个自定义view,大致如下:

这里写图片描述

上面是一个label,下面是一个slider,移动滑块,label文字会根据滑块的变化而变化。

1)自定义一个view,然后创建一个基于UIView的xib文件,然后在xib中添加label和slider,添加AutoLayout;
2) 设置xib文件的File’s Owner类型为自定义view的类型;具体操作如下:

这里写图片描述

3) 重写自定义view的initWithCoder:方法

- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self)
    {
        //获取用xib自定义的view
        UIView *containerView = [[NSBundle mainBundle] loadNibNamed:@"CustomXibView" owner:self options:nil].lastObject;
        [self addSubview:containerView];

        //如果是从代码层面开始使用Autolayout,需要对使用的View的translatesAutoresizingMaskIntoConstraints的属性设置为NO.
        //即可开始通过代码添加Constraint,否则View还是会按照以往的autoresizingMask进行计算.
        //而在Interface Builder中勾选了Ues Autolayout,IB生成的控件的translatesAutoresizingMaskIntoConstraints属性都会被默认设置NO.
        [containerView setTranslatesAutoresizingMaskIntoConstraints:NO];

        //添加约束
        NSDictionary *viewDictionary = NSDictionaryOfVariableBindings(containerView);
        NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[containerView]-0-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewDictionary];
        NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[containerView]-0-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewDictionary];
        [self addConstraints:horizontalConstraints];
        [self addConstraints:verticalConstraints];
    }
    return self;
}

4)然后就可以在其他xib文件里使用这个自定义的view了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值