zoukankan      html  css  js  c++  java
  • 自定义控件-使用frame和代码的自定义UI控件

    一点一点看到UI的本质,现在是最初级(汗·····

    总之我在这篇博客上面学了很多东西http://blog.csdn.net/zhangao0086/article/details/45622875

    上面写了很多,但是我不能一下子消化完,所以只学了一部分,在UI生成方面使用的是代码,在适配方面使用的是frame

    相信我以后会升级的!!!

    自定义控件的三个关键点:

      1 init

      2 初始化数据源

      3 添加subViews

    1 init

    在自定义控件的时候最好写一个初始化方法,当代码实例化一个view的时候,initWithFrame方法一定会执行,所以可以重写initWithFrame方法,后面再加上你的一些参数

    如果想要别人使用你的控件更方便,最好写一个basic初始化方法,比如说

    这样用户即使不使用你重写的方法,那个方法也会被执行

    2 初始化数据源

    从自定义初始化方法中拿数据的时候,需要找一个地方存起来,比如说存到一个array(数组)里面

    这时候一定要注意对数组进行实例化

    如果在初始化方法里对数组进行实例化也可以,但是可能会觉得初始化方法比较臃肿

    可以使用@property方法来声明数组,然后重写get方法,在get方法里进行实例化,比如

    3 添加subViews

    在初始化方法中除了要初始化数据源,也需要初始化UI,一般都要添加subView

    方法和初始化数据源同理,先使用@property声明view,然后在get方法里进行实例化和属性设置,但是不要设置frame,为了自定义的控件更加方便,最好在layoutSubViews方法中来设置subViews的frame

    所以,在init方法中,只需要进行addSubView的操作就可以了,使代码更加简洁

    ok,(frame+代码写view) 的自定义控件就结束了,下一次要可能要升级成使用  (约束+代码写view) 来自定义控件了

  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/chebaodaren/p/5261111.html
Copyright © 2011-2022 走看看