场景9:自定义底部栏
更新时间:2025-05-19 09:33:53

自定义底部栏

使用场景

  • 需要自定义入会后主界面底部操作工具栏。
  • 可以自定义底部栏内容的顺序,以及添加自定义项,可以自定义按钮的样式,包括icon、标题和点击事件
  • 默认的选项无法被更改。

操作步骤

  • 1.设置YealinkSDKMeetingServiceDelegate代理委托
    [[YealinkSDK shared] getMeetingService].delegate = self;
    
  • 2.遵循YealinkSDKMeetingServiceDelegate代理
    • 头文件引用代理
    @interface xxx类名() <YealinkSDKMeetingServiceDelegate>
    @end
    
    • 实现代理函数,返回的数组为期望的按钮数组。如果传入空数组则没有使用默认的按钮,底部栏显示的内容只会显示支持当前会议场景下的默认选项。
    • 选项不能超过 5 个,如果返回数组超过 5 个,就取前 5 个选项。
/*!
@brief 自定义底部栏返回数组
@return NSArray<YealinkSDKMeetingToolBarMenuItem *> 底部栏item数组
*/
- (NSArray<YealinkSDKMeetingToolBarMenuItem *> *)buildMeetingBottomMenus {
    NSMutableArray<YealinkSDKMeetingToolBarMenuItem *> *resultArray = [NSMutableArray array];
    YealinkSDKMeetingToolBarMenuItem *item = [YealinkSDKMeetingToolBarMenuItem defaultMicItem];
    [resultArray addObject:item];
    item = [YealinkSDKMeetingToolBarMenuItem defaultCameraItem];
    [resultArray addObject:item];
    item = [YealinkSDKMeetingToolBarMenuItem customItem];
    [item customWithConfigureBlock:^(UIButton *btn) {
        [btn setTitle:@"测试1" forState:UIControlStateNormal];
    } clickAction:^{
        NSLog(@"test1");
    }];
    [resultArray addObject:item];

    item = [YealinkSDKMeetingToolBarMenuItem customItem];
    [item customWithConfigureBlock:^(UIButton *btn) {
        [btn setTitle:@"测试2" forState:UIControlStateNormal];
    } clickAction:^{
        NSLog(@"test2");
    }];
    [resultArray addObject:item];

    item = [YealinkSDKMeetingToolBarMenuItem defaultMoreItem];
    [resultArray addObject:item];
    return resultArray;
}
  • 每个配置选项由YealinkSDKMeetingToolBarMenuItem驱动,除了默认选项外,需要自定义样式和点击回调的。通过以下方法设置。
/*!
 @brief 设置自定义选项的按钮配置和点击block
 @prama configureBlock 配置block
 @prama clickAction 点击block
 */
- (void)customWithConfigureBlock:(void (^)(UIButton *))configureBlock
                     clickAction:(void (^)())clickAction;

其他情况

  • 不实现自定义底部栏时,默认使用中性的底部栏交互逻辑。
本页目录