美文网首页iOS进阶指南
view的封装(自定义控件)

view的封装(自定义控件)

作者: 修行小怪兽 | 来源:发表于2016-04-26 10:18 被阅读91次

三大步骤

1.初始化view与其子控件,然后添加子控件(给view添加子控件属性)(重写init方法)

- 给view添加的属性是类扩展,降低耦合性,保护数据不被修改。
- 应该最好重写initwithFrame:(CGRect *)frame。(都会来到这个方法)

- (instancetype)init{
    if (self=[super init]) {
        self.backgroundColor = [UIColor redColor];
        UIImageView *iconView= [[UIImageView alloc]init];
        iconView.backgroundColor = [UIColor yellowColor];
        
        [self addSubview:iconView];
        _iconView = iconView;
        UILabel *laberView = [[UILabel alloc]init];
        laberView.backgroundColor =[UIColor blueColor];
        laberView.textAlignment =NSTextAlignmentCenter;
        laberView.font = [UIFont systemFontOfSize:11];
        [self addSubview:laberView];
        _lableView = laberView;//长期拥有它
    }
    return self;

2.拿到子控件(在第一步中),给子控件设置位置与尺寸(用到layoutsubviews)

 -  layoutsubviews 在父控件尺寸修改的时候调用。这时拿到父控件的尺寸,给子控件设置。 


- (void)layoutSubviews{
   [super layoutSubviews];//一定记着调用这个方法。
   float shopH = self.frame.size.height;
   float  shopW= self.frame.size.width;
   _iconView.frame =CGRectMake(0, 0, shopW, shopW);
   _lableView.frame =CGRectMake(0, shopW, shopW, shopH -shopW);
   //
   //
   //不是每一次修改立马调用这个方法,是在在一个时间段里收集修改,以最后一次修改为标准。然后在这个时间段结束的统一调用这个方法。这个是消息循环。方法内代码处在统一个循环中,一个执行时间内。
   
   //
}

3.拿到模型数据(添加模型属性),重写模型属性的set方法,然后在set方法中将传递进来的模型数据保存到成员变量,然后给子控件添加数据例如(图片,文本)。



- (void)setShop:(shops *)shop{
    _shop = shop;
    _iconView.image = [UIImage imageNamed:shop.icon];
    _lableView.text = shop.name;
    
}

总结来说就是初始化 给尺寸与位置,然后给数据(给需要的东西)。mvc

思想。

相关文章

  • UI-Xib

    Xib的加载 方法1 方法2 自定义控件view的步骤 新建自定义控件类 修改xib中view的类名 封装xib的...

  • UIView

    view的封装 Xib和storyboard对比 Xib的加载 使用xib自定义view的步骤 l新建自定义控件类...

  • iOS-自定义控件相关

    本篇涵盖自定义控件、视图等. 1.iOS开发-轻松学会封装自定义视图view(自定义弹框封装详解)2.iOS开发-...

  • iOS-自定义View的封装

    在开发过程中,自定义控件使用的频率非常高,接下来简单对自定义控件做个小结 View的封装 如果一个view内部的子...

  • 自定义View的封装

    view的封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来。 ...

  • view的封装

    view的封装 - 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来...

  • 6.编写Home页面 -PageTitleView 顶部导航

    1.先封装 PageTitleView 1.1自定义View,自定义构造函数 1.2添加子控件,1> 添加UISc...

  • iOS边练边学--view的封装

    一、view封装的思路: *如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部的子控件的创...

  • MVC之View

    view的封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不...

  • 010:view的封装

    view的封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不...

网友评论

    本文标题:view的封装(自定义控件)

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