zoukankan      html  css  js  c++  java
  • UITableView设计思想 考察

    整体使用了build模式;单是组织结构混乱;不符合人类思维。

    UITableViewDataSource:描述了View的要素个数情况;并担负了builder功能。

    UITableViewDelegate:描述了要素的几何属性(组织者)并担负了builder功能。

    UITableView

    @property (nonatomic, strong, nullable) UIView *tableHeaderView;                           // accessory view for above row content. default is nil. not to be confused with section header

    @property (nonatomic, strong, nullable) UIView *tableFooterView;                           // accessory view below content. default is nil. not to be confused with section footer

    ==========================================

    this represents the display and behaviour of the cells.

    UITableViewDelegate

    // Variable height support

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

    // Section header & footer information. Views are preferred over title should you decide to provide both

    - (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;   // custom view for header. will be adjusted to default or specified header height

    - (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;   // custom view for footer. will be adjusted to default or specified footer height

    // Called after the user changes the selection.

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

    - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0);

    // this protocol represents the data model object. as such, it supplies no information about appearance (including the cells)

    UITableViewDataSource

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

  • 相关阅读:
    微软源码地址
    主流.NET的ORM框架
    C#为字符串数组动态赋值的问题
    JQuery判断radio(单选框)是否选中和获取选中值方法总结
    使用Google浏览器和火狐浏览器一起查看同步跟异步页面
    关于NHibernate之 no persister for: ×××.××错误的解决方法
    低版本VS打开高版本的解决方案
    亚马逊AWS(同样适用于Google Cloud Platform)
    VsCode快捷键
    oracle_linux_6_64(bit)上安装oracle11gR2数据库环境快速准备神器oracle-rdbms-server-11gR2-preinstall
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7363993.html
Copyright © 2011-2022 走看看