XFSettings icon indicating copy to clipboard operation
XFSettings copied to clipboard

类型问题

Open al1020119 opened this issue 7 years ago • 1 comments

如果我的控制器是UItableViewController呢?或者说需要设置tableView的heander,和Sectionheader这样的话是否需要修改源码处理?

al1020119 avatar Aug 29 '16 02:08 al1020119

@al1020119

问题一,如果我的控制器是UITableViewController

如果当前已经有一个写好的设置界面继承自UITableViewController

非常抱歉,本框架是没有考虑为旧项目动态添加设置行的功能,只有新项目适合用,或者用本框架重写?因为本人就是每到一家公司去,就会用本框架重写,毕竟设置界面没有多少代码,重写的原因是,旧项目很多设置界面是这么写的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 太多魔法数字,看得头晕
    if(indexPath.section == 0){
        if(indexPath.row == 0){
             // 跳转到一个控制器
        }else if(indexPath.row == 1){
            // 跳转到另一个控制器
       }
    }
    // 。。。其它section和row的情况等等
}

如果是一个新类要做设置界面已继承自UITableViewController

把它改为继承普通的UIViewController,然后导入本框架的UIViewController+XFSettings.h,其步骤请参考快速开始使用文档

问题二,需要设置tableView的header

这个不需要修改源码,可以直接在控制器viewDidLoad方法里设置self.xf_tableView.tableHeaderView=你的列表头视图,例如:

   UIView *headerParentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 88)];
    headerParentView.backgroundColor = UIColorFromRGB(CBBackgroundColor);
    XFSettingHeaderView *settingHeaderView = [XFSettingHeaderView settingHeaderView];
    settingHeaderView.size = CGSizeMake(self.view.width, 88);
    [headerParentView addSubview:settingHeaderView];
    self.settingHeaderView = settingHeaderView;
    self.xf_tableView.tableHeaderView = headerParentView;

问题三、添加SectionHeader视图

这个确实是要修改源码核心内容,因为这是没有考虑在内的,我看过很多设置界面,没有要自定义SectionHeader视图的,如果方便的话,可以发邮件到[email protected],并附上你的设置界面样图。

非常感谢你的提问,希望对你有所帮助。

yizzuide avatar Aug 29 '16 06:08 yizzuide