Skip to content
能力中心
产品中心
应用市场
WebOffice
开发者后台

自定义笔记列表页面

协作中台SDK 支持笔记列表界面的自定义。可以通过设置笔记列表视图控制器的页面代理并实现相关协议方法来完成笔记列表界面的自定义,自定义协议定义在 KIMNoteHomeViewControllerDelegate 中。

接口定义

KIMNoteHomeViewControllerDelegate :

方法参数返回值说明
noteHomeViewController(_:
configTitleView:)
• controller: KIMNoteHomeViewController
笔记列表视图控制器。
• titleView: KIMNavigationTitleView
标题视图。
Void配置笔记首页导航栏标题视图。可实现该方法,通过 titleView 参数获取导航栏标题视图控件,对标题视图控件进行配置,如修改标题样式、添加左右侧按钮等。
noteHomeViewController(_:
updateTitleView:)
• controller: KIMNoteHomeViewController
笔记列表视图控制器。
• titleView: KIMNavigationTitleView
标题视图。
Void更新导航栏标题视图。SDK内部有相关修改标题视图的逻辑,如更新标题展示等,当标题视图发生更新时会调用该代理方法,可通过实现该方法对 titleView 内部变化进行监听,以便对 titleView 进行必要的二次处理。

自定义示例

自定义标题栏

笔记列表标题栏默认展示了标题及右侧搜索按钮。可通过实现 KIMNoteHomeViewControllerDelegateconfigTitleView 协议方法来自定义标题栏的展示及点击事件。

代码示例

swift
class CustomNoteHomeViewController: KIMNoteHomeViewController {

    override func viewDidLoad() {
        self.delegate = self
        super.viewDidLoad()
    }
}

extension CustomNoteHomeViewController: KIMNoteHomeViewControllerDelegate {
    func noteHomeViewController(_ controller: KIMNoteHomeViewController, configTitleView titleView: KIMNavigationTitleView) {
        // 设置标题颜色
        titleView.titleAttributes = [.foregroundColor: UIColor.blue]

        // 隐藏标题栏返回按钮
        titleView.setBackButton(hide: true)

        // 设置返回按钮点击事件
        titleView.setBackButtonAction {
            // 返回按钮事件回调
        }

        // 添加导航栏左侧按钮
        // 注意: 添加的 item 请使用 AutoLayout 设置好宽高, 或包含自适应宽高
        titleView.setLeftItems([customButton()])

        // 添加导航栏右侧按钮
        // 注意: 添加的 item 请使用 AutoLayout 设置好宽高, 或包含自适应宽高
        titleView.setRightItems([customButton()])
    }

    func noteHomeViewController(_ controller: KIMNoteHomeViewController, updateTitleView titleView: KIMNavigationTitleView) {
       // 内部 SDK 对 titleView 更新的时候会调用该方法,有可能会覆盖 SDK 外部的配置,所以可以在此处再次配置覆盖 SDK 的更新
    }
}

全局替换视图控制器

如果子类化笔记列表视图控制器后,希望SDK内部入口在初始化笔记列表页面时都使用子类类型,可以通过设置笔记列表视图控制器的子类类型 documentHomeViewControllerType 来达到效果。

代码示例

swift
KIM.docsModule.noteHomeViewControllerType = CustomNoteHomeViewController.self