iOS自定义控件 -自定义控件时常用的方法

本文详细介绍了在iOS开发中如何自定义控件及其子控件。包括在initWithFrame中设置固定属性、根据传入属性在layoutSubviews中动态布局控件,以及如何通过重写模型类的set方法来传递数据模型。

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

一、代码
1. 在自定义控件的时候分为自定义控件和子控件,自定义固定控件的时候直接在initWithFrame中设置。
init底层就会调用initWithFrame,用于初始化控件的固定属性。
- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
        [self setup];
        }
    return self;
}
setup方法是用来定义控件的

2. 如果需要根据传入的属性对控件进行布局时,在layoutSubViews中设置
layoutSubViews在控件即将加载到父控件中时调用
- (void)layoutSubviews
{
    NSUInteger count = self.subviews.count;
    for (int i = 0; i < count; i ++) {
        WWTabBarBotton *btn = self.subviews[i];
        CGFloat btnW = self.bounds.size.width / count;
        CGFloat btnX = btnW *i;
        CGFloat btnH = self.bounds.size.height ;
        [btn setFrame:CGRectMake(btnX, 0, btnW, btnH)];
    }
}

3. 需要传入模型的时候重写模型类的set方法

二、storyBoard

使用storyBoard创建控制器
1. 加载storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboardName" bundle:nil];

2. 设置箭头指向的控制器为自定义控制器
控制器类型 *discover = [storyboard instantiateInitialViewController];

三 、 Xib

使用Xib创建控件的时候调用,返回控件 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值